Изменить текст QPushButton при нажатии - PullRequest
0 голосов
/ 25 сентября 2018

Так что я искал вокруг, но не могу найти решение своей проблемы.Я хотел бы обновить текст 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.Я использую Python 3.7.

Пожалуйста, вы можете помочь?

1 Ответ

0 голосов
/ 25 сентября 2018

Мне удалось решить проблему с помощью этой строки кода:

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

Мне нужно было выбрать правильный API.

...