QLineEdit
会在.clear()
或.setText()
方法上触发信号。
因此,每次使用这些方法来阻止LineEdit发出信号时,我需要.blockSignals(True)
然后.blockSignals(False)
。
我想知道是否有办法绕过它?
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_())
答案 0 :(得分:5)
您考虑过QLineEdit::textEdited
了吗?以编程方式更改文本时,它不会发出信号。