Heim >Backend-Entwicklung >Python-Tutorial >Lösung für das ungültige Textctrl-Wagenrücklaufereignis in wxpython

Lösung für das ungültige Textctrl-Wagenrücklaufereignis in wxpython

WBOY
WBOYOriginal
2016-08-04 08:55:382363Durchsuche

Das Beispiel in diesem Artikel beschreibt die Lösung für das ungültige Textctrl-Wagenrücklaufereignis in wxpython. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Heute ist bei der Entwicklung eines Clients mit dem Textctrl-Steuerelement von wxptyhon ein Problem aufgetreten. Gemäß der Logik des HTML-Formulars sollten wir die Abfrage durch Drücken der Eingabetaste in Textctrl senden, aber das Drücken der Eingabetaste von wxpython verhält sich tatsächlich wie ein Tab. Zum nächsten Steuerelement springen. Um die Abfrage abzuschließen, müssen Sie entweder mit der Maus auf die Schaltfläche klicken oder sie zweimal oder öfter drücken.

Ich habe danach gegoogelt und keine Antwort gefunden, aber ich habe einige nützliche Informationen erhalten:

TextCtrl unterstützte Ereignistypen:

EVT_TEXT: Dieses Ereignis wird generiert, wenn der Text aufgrund einer Benutzereingabe oder der Verwendung von SetValue() im Programm geändert wird.

EVT_TEXT_ENTER: Dieses Ereignis wird generiert, wenn der Benutzer die Eingabetaste in einem Textsteuerelement im wx.TE_PROCESS_ENTER-Stil drückt.

EVT_TEXT_URL: Wenn auf einem Windows-System der Stil wx.TE_RICH oder wx.TE_RICH2 festgelegt ist und auch der Stil wx.TE_AUTO_URL festgelegt ist, tritt dieses Ereignis auf, wenn die URL im Textsteuerelement angezeigt wird wird ausgelöst, wenn ein Mausereignis auftritt.

EVT_TEXT_MAXLEN: Wenn die maximale Länge des Steuerelements mit SetMaxLength() angegeben wird, wird dieses Ereignis ausgelöst, wenn der Benutzer versucht, eine längere Zeichenfolge einzugeben.

Zeigen Sie dem Benutzer zu diesem Zeitpunkt beispielsweise eine Warnmeldung an.

Am Beispiel von wxptyon Demos habe ich endlich die Lösung herausgefunden:

1. Sie müssen das Stilattribut hinzufügen, wenn Sie eine Instanz deklarieren, wie zum Beispiel:

wx.TextCtrl(self,style=wx.TE_PROCESS_ENTER)

2. Binden Sie das Enter-Ereignis von TextCtrl

Zuerst habe ich eine knopfartige Bindungsmethode verwendet, aber es hat nicht funktioniert

Code kopieren Der Code lautet wie folgt:
self.element_panel.searchInput.Bind(wx.EVT_TEXT_ENTER, self.onSearch)

Die richtige Deklarationsmethode sollte sein:

Code kopieren Der Code lautet wie folgt:
self.Bind(wx.EVT_TEXT_ENTER, self.onSearch, self.element_panel.searchInput)

Dann deklarieren Sie die entsprechende Methode in Frame oder Panel.

Leser, die an weiteren Python-bezogenen Inhalten interessiert sind, können sich die speziellen Themen auf dieser Website ansehen: „Python-Datenstruktur und -Algorithmus-Tutorial“, „Python-Socket-Programmierfähigkeiten – Zusammenfassung“, „Python-Funktion mit Fähigkeiten – Zusammenfassung“, „Python Zusammenfassung der String-Operationsfähigkeiten“, „Klassisches Tutorial für den Einstieg in und Fortgeschrittene mit Python“ und „Zusammenfassung der Python-Datei- und Verzeichnisoperationsfähigkeiten“

Ich hoffe, dass dieser Artikel für alle in der Python-Programmierung hilfreich sein wird.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn