2014-09-11 56 views
1

QLineEdit觸發.clear().setText()方法的信號。 因此,每次使用這些方法停止LineEdit發出信號時,我需要輸入.blockSignals(True),然後輸入.blockSignals(False)。 我想知道是否有解決方法?如何在不觸發信號的情況下清除QLineEdit

from PyQt4 import QtCore, QtGui  
app = QtGui.QApplication([]) 

class LineEdit(QtGui.QLineEdit): 
    def __init__(self, *args, **kwargs): 
     super(LineEdit, self).__init__() 
     self.setText('Some Text') 
     self.textChanged.connect(self.printMessage) 
     self.show() 
    def printMessage(self): 
     print 'Triggered!' 

line=LineEdit() 
line.clear() 
sys.exit(app.exec_()) 

回答

4

你考慮過QLineEdit::textEdited嗎?當文本以編程方式更改時,它不會發出信號。

+0

謝謝!很高興知道! – alphanumeric 2014-09-11 00:49:26

+0

有什麼方法可以說哪種方法發出信號,哪些不會去文檔? – alphanumeric 2014-09-11 00:50:43

+0

@Sputnix我猜不是。除了定期檢查文檔以外,沒有其他選擇。 – Trilarion 2014-09-12 09:07:03

相關問題