这个问题在这里已经有答案了:
pyqt5 qlcnumber不更新(1个答案)
从外部函数访问qlcdnumber对象(1个答案)
raspberry pi上端口或硬件io点的定期轮询(1个答案)
4小时前关门了。
我想要的是pyqt5标签(电源按钮状态)中的gui根据物理按钮的位置(开/关按钮-表示电源状态)进行自我更新。
问题是。。。代码看起来不错,但当我运行时,它只运行一次。。。。它根据按钮的位置显示相应的颜色和文本,但之后程序就会停止运行。
这是我的程序。
希望你能帮我一把!
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import sys, time
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
powerButton = 1 # button position in RPi - gpio1
GPIO.setup(powerButton, GPIO.IN)
class MyWindow(QDialog):
def __init__(self):
super().__init__()
self.setGeometry(200, 200, 300, 300)
self.setWindowTitle("On/Off Color variation")
self.InitUi()
self.show()
def InitUi(self):
self.label = QtWidgets.QLabel(self)
if GPIO.input(powerButton) == GPIO.HIGH:
self.label.setText("Power On")
self.label.setStyleSheet("background-color: lightgreen")
elif GPIO.input(powerButton) == GPIO.LOW:
self.label.setText("Power Off")
self.label.setStyleSheet("background-color: red")
self.powerStatus = powerStatusThread()
self.powerStatus.start()
class powerStatusThread(QThread):
def run(self):
while True:
if GPIO.input(powerButton) == GPIO.HIGH:
print("Button ON")
self.label.setText("Power On")
self.label.setStyleSheet("background-color: lightgreen")
self.label.update()
elif GPIO.input(powerButton) == GPIO.LOW:
print("BUTTON OFF")
self.label.setText("Power Off")
self.label.setStyleSheet("background-color: red")
self.label.update()
time.sleep(2)
if __name__ == "__main__":
app = QApplication(sys.argv)
mainDialog = MyWindow()
mainDialog.show()
sys.exit(app.exec_())
暂无答案!
目前还没有任何答案,快来回答吧!