PyQt 检查 qlabel 的值是否更改

use*_*782 4 label pyqt pyqt4

我需要检查 qlabel 的值 (str) 是否更改。我考虑使用以下代码(几乎与 PyQt 中的 spinbox 小部件使用的相同):

self.connect(self.ui.labelEntry, QtCore.SIGNAL("valueChanged(str)"), self.autovalidate)
Run Code Online (Sandbox Code Playgroud)

检查值是否更改的正确方法是什么?

一切顺利;

Yoa*_*ann 5

QLabels没有 valueChanged/textChanged 信号。您要么必须使用其他小部件类型(例如 QLineEdit),要么对 QLabel 进行子类化并使用信号创建您自己的更改感知类textChanged

如果您使用 QtDesigner,那么使用第一个解决方案并从设计器自定义 QLineEdit 可能会更简单。在属性编辑器中,取消选中frame、选中readOnly并写入background-color:"transparent"styleSheet您就得到了一个看起来像 QLineEdit 的 QLabel。

您还应该使用新式语法,它更加优雅。

self.ui.labelEntry.textChanged.connect(self.autovalidate)
Run Code Online (Sandbox Code Playgroud)