PyQt 如何检查 QLineEdit 的值是否发生改变?

5
我需要检查PyQt4中lineEdit的值是否已更改,如果值已更改,则需要触发一个槽。 我的代码:
self.connect(self.ui.lineEdit, QtCore.SIGNAL("textChanged (QString & text"), self.sync_lineEdit)

在GUI中更改值后没有任何反应。

有什么解决该问题的想法吗?

此致敬礼;


1
你正在使用旧版的信号/槽连接方式。请查看pyqt文档(以及qurban的答案),了解如何使用新的(符合Python语言风格)的信号和槽连接方式:http://pyqt.sourceforge.net/Docs/PyQt4/new_style_signals_slots.html。 - three_pineapples
1个回答

11

尝试简单连接:

self.ui.lineEdit.textChanged.connect(self.sync_lineEdit)
...

def sync_lineEdit(self, text):
    print text

这应该能正常工作


7
注意,每次文本发生更改时都会触发 textChanged 信号。这包括使用 setText 进行编程更改的情况。如果只想对用户所做的更改作出反应,则可以改用 textEdited 信号。 - m00am

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接