我需要检查qlabel的值(str)是否发生了变化。 我考虑使用以下代码(几乎与PyQt中的spinbox小部件使用的代码相同):
self.connect(self.ui.labelEntry, QtCore.SIGNAL("valueChanged(str)"), self.autovalidate)
检查值是否更改的正确方法是什么?
一切顺利;
答案 0 :(得分:2)
QLabels
没有valueChanged / textChanged信号。您必须使用另一个窗口小部件类型(例如QLineEdit)或子类化QLabel并使用textChanged
信号创建您自己的更改感知类。
如果您使用QtDesigner,则可以更简单地使用第一个解决方案并从Designer自定义QLineEdit。在属性编辑器中,取消frame
,检查readOnly
,然后在background-color:"transparent"
中写下styleSheet
,您就会看到QLabel正在查找QLineEdit。
你也应该使用new-style syntax,它更优雅。
self.ui.labelEntry.textChanged.connect(self.autovalidate)