python - 如何将我的 LCD 与类测试连接以显示 x?
问题描述
我正在尝试创建一个 GUI 来显示从 Raspberry 获取的机器数据。
不幸的是,我无法更新我的 QT-Desinger 表面。
所以我现在在这个“测试课”上尝试,但遗憾的是没有成功
那是我已经拥有的。有些东西不见了……但我现在不知道什么
x = 0
class Ui_Form(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(400, 300)
self.lcdNumber = QtWidgets.QLCDNumber(Form)
self.lcdNumber.setGeometry(QtCore.QRect(10, 50, 361, 191))
self.lcdNumber.setObjectName("lcdNumber")
self.lcdNumber.display(x)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
def run(self):
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
class Test(threading.Thread):
global x
def __init__(self):
threading.Thread.__init__(self)
def runs(self):
while x <= 20:
print(x)
x = x + 1
time.sleep(2)
t = Ui_Form()
t1 = Test()
t.start()
t1.start()
计数器显示 0 并且循环根本没有开始..
我的目标是让 LCD 不断更新自己,这可能吗?
谢谢
解决方案
对于更新 x 的值,QTimer 是使用 PyQt 时最好的方法,你不需要使用 threading 模块
from PyQt5.Qt import QLCDNumber, QDialog, QPushButton, QVBoxLayout, QApplication,QTimer
import sys
class LCD(QDialog):
x = 0
def __init__(self):
super(LCD, self).__init__()
self.lcdNumber = QLCDNumber()
self.pushStart = QPushButton("Start")
self.pushStart.clicked.connect(self.update)
vBox = QVBoxLayout()
vBox.addWidget(self.lcdNumber)
vBox.addWidget(self.pushStart)
self.setLayout(vBox)
self.timer = QTimer()
self.timer.timeout.connect(self.update)
def update(self):
self.lcdNumber.display(str(self.x))
self.x += 1
self.timer.start(1000)
if __name__ == "__main__":
app = QApplication(sys.argv)
lcd = LCD()
lcd.show()
sys.exit(app.exec_())
推荐阅读
- yaml - 为什么在迭代 yaml_cpp 节点时看到此 CLion 错误?
- html - vercel 部署自定义构建
- kubernetes - 使用 helm 设置多个 cronjob
- java - 通过 IntelliJ 构建 Maven 成功,但使用命令行失败
- php - 显示名称姓 Magento 2.3.7(非会话)
- sql - oracle sql 表创建错误 %s: 标识符无效”
- python - 如何使用 Vosk 离线语音识别(或任何其他快速离线语音识别器)为虚拟助手设置唤醒词
- eclipse - 在 spring-tool-suite 4.11 中显示绿色 junit 测试名称
- firebase - Flutter:将一组 Firestore 流呈现为列表视图
- python - 基于节点属性对 NetworkX 图的节点进行排序