如何在不触发信号的情况下清除QLineEdit

alp*_*ric 2 python pyqt

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_())
Run Code Online (Sandbox Code Playgroud)

Jam*_*oth 5

你考虑过了QLineEdit::textEdited吗?以编程方式更改文本时,它不会发出信号。