【问题标题】:Making Push button label change every click on pyqt5每次点击pyqt5都会改变按钮标签
【发布时间】:2019-12-15 09:13:42
【问题描述】:

我正在使用 pyqt5 构建一个 gui。我试图弄清楚如何每次点击更改按钮:

在我的代码中,我有一个名为 Chuck_Release 的按钮。基本上,我希望它在某些条件下显示“chuck”或“release”,但在那之前我只希望它每次点击都改变它的标题,开始状态为“chuck”,但我似乎无法弄清楚知道怎么做。

这是我的代码:

import sys, time
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(685, 459)
        self.exitbtn = QtWidgets.QPushButton(Dialog)
        self.exitbtn.setGeometry(QtCore.QRect(608, 431, 75, 23))
        self.exitbtn.setObjectName("exitbtn")
        self.Typelist = QtWidgets.QComboBox(Dialog)
        self.Typelist.setGeometry(QtCore.QRect(50, 70, 59, 20))
        self.Typelist.setObjectName("Typelist")
        self.Typelist.addItem("")
        self.Typelist.addItem("")
        self.Typelist.addItem("")
        self.Chuck_Release = QtWidgets.QPushButton(Dialog)
        self.Chuck_Release.setGeometry(QtCore.QRect(50, 100, 75, 23))
        self.Chuck_Release.setObjectName("Chuck_Release")
        self.label = QtWidgets.QLabel(Dialog)
        self.label.setGeometry(QtCore.QRect(50, 20, 37, 16))
        self.label.setObjectName("label")
        self.textBrowser = QtWidgets.QTextBrowser(Dialog)
        self.textBrowser.setGeometry(QtCore.QRect(25, 160, 511, 192))
        self.textBrowser.setObjectName("textBrowser")
        self.lineEdit = QtWidgets.QLineEdit(Dialog)
        self.lineEdit.setGeometry(QtCore.QRect(50, 40, 133, 20))
        self.lineEdit.setObjectName("lineEdit")
        self.Runbtn = QtWidgets.QPushButton(Dialog)
        self.Runbtn.setGeometry(QtCore.QRect(420, 60, 91, 61))
        font = QtGui.QFont()
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.Runbtn.setFont(font)
        self.Runbtn.setObjectName("Runbtn")
        self.getSerial = QtWidgets.QPushButton(Dialog)
        self.getSerial.setGeometry(QtCore.QRect(200, 40, 75, 23))
        self.getSerial.setObjectName("getSerial")

        self.exitbtn.clicked.connect(self.exitclicked)
        self.Chuck_Release.clicked.connect(self.chuckclicked)


        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "NEW GUI"))
        self.exitbtn.setText(_translate("Dialog", "Exit"))
        self.Typelist.setItemText(0, _translate("Dialog", "Type 1"))
        self.Typelist.setItemText(1, _translate("Dialog", "Type2"))
        self.Typelist.setItemText(2, _translate("Dialog", "Type 3"))
        self.Chuck_Release.setText(_translate("Dialog", "Chuck"))
        self.label.setText(_translate("Dialog", "Serial #"))
        self.Runbtn.setText(_translate("Dialog", "Run"))

        self.getSerial.setText(_translate("Dialog", "Enter"))

    def exitclicked(self,Dialog):
        sys.exit()

    def chuckclicked(self,Dialog):
        self.Chuck_Release.setText("Release")     ***this is my function for chuckrelease push button***


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Dialog = QtWidgets.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(Dialog)
    Dialog.show()
    sys.exit(app.exec_())

如果有人可以向我解释如何完成它的过程,我会很高兴。 谢谢! :D

【问题讨论】:

    标签: python user-interface pyqt5


    【解决方案1】:

    可检查:布尔

    此属性保存按钮是否可检查

    默认情况下,该按钮是不可检查的。


    检查:布尔

    该属性保存按钮是否被选中

    只能检查可检查的按钮。默认情况下,该按钮未选中。

    import sys, time
    from PyQt5 import QtCore, QtGui, QtWidgets
    
    class Ui_Dialog(object):
        def setupUi(self, Dialog):
            Dialog.setObjectName("Dialog")
            Dialog.resize(685, 459)
            self.exitbtn = QtWidgets.QPushButton(Dialog)
            self.exitbtn.setGeometry(QtCore.QRect(608, 431, 75, 23))
            self.exitbtn.setObjectName("exitbtn")
            self.Typelist = QtWidgets.QComboBox(Dialog)
            self.Typelist.setGeometry(QtCore.QRect(50, 70, 59, 20))
            self.Typelist.setObjectName("Typelist")
            self.Typelist.addItem("")
            self.Typelist.addItem("")
            self.Typelist.addItem("")
            self.Chuck_Release = QtWidgets.QPushButton(Dialog)
            self.Chuck_Release.setGeometry(QtCore.QRect(50, 100, 75, 23))
            self.Chuck_Release.setObjectName("Chuck_Release")
            
            self.Chuck_Release.setCheckable(True)                               # +++        
            
            self.label = QtWidgets.QLabel(Dialog)
            self.label.setGeometry(QtCore.QRect(50, 20, 37, 16))
            self.label.setObjectName("label")
            self.textBrowser = QtWidgets.QTextBrowser(Dialog)
            self.textBrowser.setGeometry(QtCore.QRect(25, 160, 511, 192))
            self.textBrowser.setObjectName("textBrowser")
            self.lineEdit = QtWidgets.QLineEdit(Dialog)
            self.lineEdit.setGeometry(QtCore.QRect(50, 40, 133, 20))
            self.lineEdit.setObjectName("lineEdit")
            self.Runbtn = QtWidgets.QPushButton(Dialog)
            self.Runbtn.setGeometry(QtCore.QRect(420, 60, 91, 61))
            font = QtGui.QFont()
            font.setPointSize(16)
            font.setBold(True)
            font.setWeight(75)
            self.Runbtn.setFont(font)
            self.Runbtn.setObjectName("Runbtn")
            self.getSerial = QtWidgets.QPushButton(Dialog)
            self.getSerial.setGeometry(QtCore.QRect(200, 40, 75, 23))
            self.getSerial.setObjectName("getSerial")
    
            self.exitbtn.clicked.connect(self.exitclicked)
            self.Chuck_Release.clicked.connect(self.chuckclicked)
    
    
            self.retranslateUi(Dialog)
            QtCore.QMetaObject.connectSlotsByName(Dialog)
    
        def retranslateUi(self, Dialog):
            _translate = QtCore.QCoreApplication.translate
            Dialog.setWindowTitle(_translate("Dialog", "NEW GUI"))
            self.exitbtn.setText(_translate("Dialog", "Exit"))
            self.Typelist.setItemText(0, _translate("Dialog", "Type 1"))
            self.Typelist.setItemText(1, _translate("Dialog", "Type2"))
            self.Typelist.setItemText(2, _translate("Dialog", "Type 3"))
            self.Chuck_Release.setText(_translate("Dialog", "Chuck"))
            self.label.setText(_translate("Dialog", "Serial #"))
            self.Runbtn.setText(_translate("Dialog", "Run"))
    
            self.getSerial.setText(_translate("Dialog", "Enter"))
    
        def exitclicked(self,Dialog):
            sys.exit()
    
        def chuckclicked(self,Dialog):
            # print(self.Chuck_Release.isChecked())
            if self.Chuck_Release.isChecked():                              # +++
                self.Chuck_Release.setText("Release")    
            else: 
                self.Chuck_Release.setText("Chuck")
                
                
    if __name__ == "__main__":
        import sys
        app = QtWidgets.QApplication(sys.argv)
        Dialog = QtWidgets.QDialog()
        ui = Ui_Dialog()
        ui.setupUi(Dialog)
        Dialog.show()
        sys.exit(app.exec_())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-26
      • 1970-01-01
      • 2021-03-08
      • 2021-03-14
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      相关资源
      最近更新 更多