繁体   English   中英

每次点击pyqt5时,按钮标签都会改变

[英]Making Push button label change every click on pyqt5

我正在使用 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

可检查:布尔

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

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


检查:布尔

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM