【问题标题】:how to set a text as a label when button is clicked?单击按钮时如何将文本设置为标签?
【发布时间】:2018-09-19 08:25:02
【问题描述】:

我想在单击按钮时将文本设置为标签。 self.labl.setText 确实可以正常工作,但是在按钮功能的时候就不行了。我在这里阅读了所有类似的问题,但仍然没有解决问题:(

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_())

【问题讨论】:

    标签: python python-3.x pyqt pyqt5 qlabel


    【解决方案1】:

    问题很简单,你正在创建另一个QLabel,这不是你想要的,你只需要更新文本。

    @pyqtSlot()
    def on_click(self):
        self.labl.setText('some text')
        self.labl.adjustSize()
    

    【讨论】:

      【解决方案2】:

      我还看到你说的是Qlabel twice

      把这个写在init()函数中:

      global labl
      labl = QLabel("Original Text", self)
      

      on_click 函数中,将您的代码更改为如下所示:

      def on_click(self):
           labl.set text("I have been clicked") 
           labl.adjustSize() 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多