Wie kann ich die Farbe eines Wortes bearbeiten, ohne EVT_TEXT in wxPython zu erzeugen?

Dies ist ein Teil einer zweiteiligen Frage (sonstiger Teil ist hier )

Also arbeite ich mit wxPython und PyEnchant, der versucht, einige fantastische Features zu bekommen. Speziell möchte ich, dass meine Textelemente die Farbe der falsch geschriebenen Wörter ändern. Ich kann dies tun, wenn ich den folgenden Code an einen Knopf binden. ( wx.TextCtrl input ein wx.TextCtrl )

  chkr = SpellChecker("en_US",self.input.GetValue()) words = self.input.GetValue().split() wrongWords = [err.word for err in chkr] self.input.ChangeValue("") for word in words: if not word in wrongWords: self.input.SetDefaultStyle(wx.TextAttr(wx.BLACK)) self.input.AppendText(word+" ") else: self.input.SetDefaultStyle(wx.TextAttr(wx.RED)) self.input.AppendText(word+" ") 

Das funktioniert genau so, wie ich es will, außer dass ich nicht an einen Knopf binden muss.

Hier kommt die zweite Frage ein. Ich möchte, dass es automatisch geschieht, nachdem der Benutzer die Bearbeitung beendet hat. Sie können die andere Frage für eine vollständige Diskussion von was das bedeutet, aber im Rahmen dieser Frage, alles, was bedeutet, ist, dass ich die oben genannten Operation ohne ein EVT_TEXT Ereignis zu EVT_TEXT .

ChangeValue() ist identisch mit SetValue() , aber es erzeugt keine EVT_TEXT , also gibt es eine analoge Funktion zu AppendText() was das tut? Oder scheitert das, gibt es eine Möglichkeit, EVT_TEXT zu unterdrücken, wenn es von AppendText() generiert wird oder irgendwo, um festzustellen, ob das Ereignis von AppendText() ? Danke im Voraus.

EDIT: Ich habe es geschafft, eine Arbeit zu machen, die mit Unbind() , aber ich bin immer noch offen für eine bessere Methode, wenn jemand einen finden kann

  • Pushy Spinne mit cx_Freeze oder py2exe verpacken
  • Python: Pluging wx.py.shell.Shell in einen separaten Prozess
  • Verstehst du diese Deadlock?
  • Wxpython - Mehrere TextEntryDialog-Fenster
  • Effiziente Bild-Thumbnail-Steuerung für Python?
  • Mehrfachtafel in wxpython
  • Wie lösche ich alle Seiten von agw.aui.notebook in einem Schuss?
  • Einbetten eines Pygame-Fensters in einen Tkinter- oder WxPython-Frame
  • Python-Capture-Stdout aus dem Unterprozess Zeile für Zeile
  • WxPython Panel im vorhandenen Fenster: langsam und klein
  • WxPython stürzt mit Segmentierungsfehler ab
  • Python ist die beste Programmiersprache der Welt.