簡體   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