我需要检查一个QLabel的值(str)是否发生了变化。 我考虑使用以下代码(与PyQt中的SpinBox小部件几乎相同):
self.connect(self.ui.labelEntry, QtCore.SIGNAL("valueChanged(str)"), self.autovalidate)
如何正确检查值是否更改?
祝一切顺利;
QLabels
没有valueChanged/textChanged
信号。你要么使用另一种窗口小部件类型(例如QLineEdit
),要么继承QLabel
并创建自己的具有textChanged
信号的类。
如果您使用QtDesigner,则使用第一种方法可能会更简单,并从设计器自定义您的QLineEdit
。在属性编辑器中,取消选中frame
,选中readOnly
,并在styleSheet
中编写background-color:“transparent”
,然后您就拥有一个类似于QLabel
的QLineEdit
。
您还应该使用新样式语法,它更加优雅。
self.ui.labelEntry.textChanged.connect(self.autovalidate)