Как отследить изменение значения QLable?
Можно ли как-нибудь отследить менялся ли текст в QLable?
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Можно, например так:
import sys
from PyQt5 import QtWidgets, QtGui, QtCore
class Window(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.labelOld = ''
self.label = QtWidgets.QLabel()
self.lineEdit = QtWidgets.QLineEdit()
button = QtWidgets.QPushButton('lineEdit -> label', clicked=self.onClicked)
box = QtWidgets.QGridLayout(self)
box.addWidget(self.label, 0, 0, 1, 2)
box.addWidget(self.lineEdit, 1, 0)
box.addWidget(button, 1, 1)
self._timer = QtCore.QTimer(self, interval=300)
self._timer.timeout.connect(self.nevLabel)
self._timer.start()
def onClicked(self):
self.label.setText(self.lineEdit.text())
def nevLabel(self):
if self.labelOld != self.label.text():
self.labelOld = self.label.text()
msg = QtWidgets.QMessageBox.information(self, 'Сообщение', 'Изменилось значение QLable!' )
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = Window()
w.show()
sys.exit(app.exec_())
