【问题标题】:Changing QLabel on a push of a button each time its pressed it's overwrited每次按下按钮时更改 QLabel 都会被覆盖
【发布时间】:2019-04-25 02:02:53
【问题描述】:

我想打印出用户输入的一组 3 个数字的平均值。但是,每当我按下按钮时,文本就会相互重叠

def Comp
    Average = QtGui.QLabel("The Students Average is " + str(self.average), self)
    Average.move(400,300)
    Average.setFont(QtGui.QFont('sanSerif',16))
    Average.resize(Average.sizeHint())
    Average.show()

btn = QtGui.QPushButton("Test",self)
btn.clicked.connect(self.comp)

我们将不胜感激任何形式的帮助

【问题讨论】:

    标签: python pyqt pyqt4 qlabel qpushbutton


    【解决方案1】:

    每次按下按钮时,您都会创建一个新的 QLabel,而您必须重复使用该 QLabel。

    from PyQt4 import QtCore, QtGui
    
    
    class Widget(QtGui.QWidget):
        def __init__(self, parent=None):
            super(Widget, self).__init__(parent)
            self.average_label = QtGui.QLabel()
            self.average_label.setFont(QtGui.QFont("sanSerif", 16))
            self.button = QtGui.QPushButton("Test")
            self.button.clicked.connect(self.on_clicked)
    
            lay = QtGui.QVBoxLayout(self)
            lay.addWidget(self.average_label)
            lay.addWidget(self.button)
    
        @QtCore.pyqtSlot()
        def on_clicked(self):
            import random
            self.average = random.uniform(0, 100) # emulate average
            self.average_label.setText(
                "The Students Average is {}".format(self.average)
            )
    
    
    if __name__ == "__main__":
        import sys
    
        app = QtGui.QApplication(sys.argv)
        w = Widget()
        w.show()
        sys.exit(app.exec_())
    

    【讨论】:

      猜你喜欢
      • 2023-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-13
      • 1970-01-01
      • 1970-01-01
      • 2010-09-28
      相关资源
      最近更新 更多