为了账号安全,请及时绑定邮箱和手机立即绑定

如何将我的 LCD 与类测试连接以显示 x?

如何将我的 LCD 与类测试连接以显示 x?

Helenr 2022-01-18 16:59:52
我正在尝试创建一个 GUI 来显示从 Raspberry 获取的机器数据。不幸的是,我无法更新我的 QT-Desinger 表面。所以我现在在这个“测试课”上尝试,但遗憾的是没有成功那是我已经拥有的。有些东西不见了……但我现在不知道什么x = 0class 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 不断更新自己,这可能吗?
查看完整描述

1 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

对于更新 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_())


查看完整回答
反对 回复 2022-01-18
  • 1 回答
  • 0 关注
  • 155 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号