Как отследить изменение значения 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_())

введите сюда описание изображения

→ Ссылка