how to set a text as a label when button is clicked?

12,653

The problem is simple, you are creating another QLabel, and that is not what you want, you just have to update the text.

@pyqtSlot()
def on_click(self):
    self.labl.setText('some text')
    self.labl.adjustSize()
Share:
12,653
Admin
Author by

Admin

Updated on June 14, 2022

Comments

  • Admin
    Admin almost 2 years

    I want to set text as label when button is clicked. self.labl.setText does work normally, but it doesn't work when it is in button function. I have read all the similar questions here, but still didn't solve the problem :(

    import sys
    from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel
    from PyQt5.QtCore import pyqtSlot
    
    class App(QWidget):
    
        def __init__(self):
            super().__init__()
            self.title = 'title'
            self.left = 10
            self.top = 10
            self.width = 640
            self.height = 480
            self.initUI()
    
    
        def initUI(self):
            self.setWindowTitle(self.title)
            self.setGeometry(self.left, self.top, self.width, self.height)
    
            self.labl = QLabel(self)
            self.labl.setText('abc')
    
            button = QPushButton('button', self)        
            button.move(170,300)
            button.clicked.connect(self.on_click)
    
            self.show()
    
        @pyqtSlot()
        def on_click(self):
            self.labl = QLabel(self)
            self.labl.setText('abc')
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        ex = App()
        sys.exit(app.exec_())