单击更改QPushButton的文本

时间:2018-09-25 07:45:50

标签: python-3.x text pyqt5 qpushbutton

所以我一直在搜索,但是似乎找不到解决我问题的方法。我想在单击QPushButton时更新其文本。每次我运行我的代码时,它都会崩溃,没有错误消息。请有人可以帮我吗?我在下面附上了我代码的相关部分:

def retranslateUi(self, MainWindow):
    _translate = QtCore.QCoreApplication.translate
    MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
    self.OuterSwitch.setText(_translate("MainWindow", "OuterDoorControl"))
    self.InnerSwitch.setText(_translate("MainWindow", "InnerDoorControl"))

...

class ControlMainWindow(QtWidgets.QMainWindow):
def __init__(self,parent=None):
    super(ControlMainWindow,self).__init__(parent)
    self.ui = Ui_MainWindow()
    self.ui.setupUi(self)

    self.ui.OuterSwitch.clicked.connect(self.OuterControl)
    self.ui.InnerSwitch.clicked.connect(self.InnerControl)


def OuterControl(self):
    if GPIO.input(Inner)==0: #InnerDoorOpen
        return GPIO.output(Outer,GPIO.HIGH),print("Please Close Inner Door")
    elif GPIO.input(Outer) ==1: #Outer Door Close
        self.OuterSwitch.setText(_translate("MainWindow","Close Outer Door"))
        QApplication.processEvents()
        return GPIO.output(Outer,GPIO.LOW) #Open Outer Door
    elif GPIO.input(Outer) == 0: #OuterDoor Open
        self.ui.InnerSwitch.setEnabled(False)
        QtCore.QTimer.singleShot(10000,partial(self.ui.InnerSwitch.setEnabled,True))
        return GPIO.output(Outer,GPIO.HIGH) #Close OuterDoor

OuterSwitch和InnerSwitch是我正在使用的两个按钮的对象名。我正在使用PyQt5,并使用QtDesigner设计了Gui。我正在使用Python 3.7。

请您帮忙?

1 个答案:

答案 0 :(得分:0)

通过使用以下代码,我设法解决了这个问题:

elif GPIO.input(Outer) ==1: #Outer Door Close
    self.ui.OuterSwitch.setText(QtWidgets.QApplication.translate("MainWindow","Close Outer Door",None))
    QtWidgets.QApplication.processEvents()

我需要选择正确的API。