Как обновлять текст label в pyqt5?

Пользователь

от roxanne.hauck , в категории: Python , 2 месяца назад

Как обновлять текст label в pyqt5?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от autumn_parker , месяц назад

@roxanne.hauck 

Для обновления текста в QLabel в PyQt5 можно использовать метод setText().


Ниже приведен пример кода, демонстрирующий, как обновлять текст QLabel:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QPushButton
from PyQt5.QtCore import QObject, pyqtSignal


class MyLabel(QLabel):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setText("Initial text")

    def update_text(self, new_text):
        self.setText(new_text)


class MyWidget(QWidget):
    def __init__(self):
        super().__init__()

        layout = QVBoxLayout()

        self.label = MyLabel()
        layout.addWidget(self.label)

        self.button = QPushButton("Update text")
        self.button.clicked.connect(self.update_label_text)
        layout.addWidget(self.button)

        self.setLayout(layout)

    def update_label_text(self):
        new_text = "New text"
        self.label.update_text(new_text)


if __name__ == "__main__":
    app = QApplication([])
    widget = MyWidget()
    widget.show()
    app.exec_()


В этом примере создается пользовательский класс MyLabel, наследующий QLabel. В этом классе определяется новый метод update_text(), который обновляет текст QLabel при вызове.


В классе MyWidget создается экземпляр MyLabel и QPushButton, а затем указывается сигнал и слот для обновления текста в QLabel при нажатии на кнопку.


При запуске этого кода вы увидите окно с QLabel, отображающим начальный текст "Initial text" и кнопкой "Update text". При нажатии на кнопку текст QLabel будет обновляться на "New text".