2016-04-14 14 views
0

私はPyqtが新しく、QLine編集ウィジェットでFocusInとFocusoutイベントを設定したいが、そうすることはできない。私は解決策には非常に近いが、正確な解決策を得ることはできないことを知っている。私のコード: -Q行編集でフォーカスインとフォーカスアウトイベントを追加する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" 

私は問題のデバッグに手伝ってください。

答えて

0

おそらく、このイベントハンドラは、ウィジェットのために(フォーカスが受信) キーボードフォーカスイベントを受け取るために、サブクラスで再実装することができfocusInEvent方法

のためのマニュアルを確認する必要があります。

サブクラスでオーバーライドされることを意味します。それを直接呼び出すことはありません。イベントシステムは、focusInイベントが発生すると自動的にイベントシステムを呼び出します。このようなことをする必要があります。

class MyLineEdit(QtGui.QLineEdit): 

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

gotFocuslostFocusても、実際の方法ではありません。

関連する問題