2016-04-14 14 views
0

Ich bin neu bei Pyqt und möchte FocusIn und Focusout-Ereignisse auf dem QLine Edit-Widget festlegen, dies aber nicht tun können. Ich weiß, dass ich der Lösung sehr nahe bin, aber nicht in der Lage bin, die genaue Lösung zu finden. mein Code: -Hinzufügen von Fokus- und Fokus-Ereignissen in Q-Linie Bearbeiten PYQT

from PyQt4.QtGui import * 
url = QtGui.QLineEdit("Please enter URL", w) 
url.setFixedWidth(800) 
url.move(500,0) 
url.focusInEvent(QFocusEvent) 

if url.gotFocus(): 
print "got focus" 
elif url.lostFocus(): 
print "lost focus" 

mir bitte helfen, das Problem bei der Fehlersuche.

Antwort

0

Sie sollten wahrscheinlich in der Dokumentation für die Methode focusInEvent überprüfen

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden Tastaturfokus Ereignisse zu empfangen (Fokus erhalten) für das Widget.

Es soll in einer Unterklasse überschrieben werden. Sie rufen es nicht direkt an, das Ereignissystem ruft es automatisch auf, wenn das Ereignis focusIn eintritt. Sie müssten so etwas tun.

class MyLineEdit(QtGui.QLineEdit): 

    def focusInEvent(self, event): 
     print 'focus in event' 
     # do custom stuff 
     super(MyLineEdit, self).focusInEvent(event) 

gotFocus und lostFocus sind nicht einmal eigentlichen Methoden.