单击时更改 QPushButton 的文本
Change text of QPushButton on Click
所以我一直在四处寻找,但似乎找不到解决我的问题的方法。我想在单击 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.
你能帮忙吗?
我使用这行代码设法解决了这个问题:
elif GPIO.input(Outer) ==1: #Outer Door Close
self.ui.OuterSwitch.setText(QtWidgets.QApplication.translate("MainWindow","Close Outer Door",None))
QtWidgets.QApplication.processEvents()
我需要 select 正确的 API。
所以我一直在四处寻找,但似乎找不到解决我的问题的方法。我想在单击 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.
你能帮忙吗?
我使用这行代码设法解决了这个问题:
elif GPIO.input(Outer) ==1: #Outer Door Close
self.ui.OuterSwitch.setText(QtWidgets.QApplication.translate("MainWindow","Close Outer Door",None))
QtWidgets.QApplication.processEvents()
我需要 select 正确的 API。