我想使用pyqt5创建一个GUI。我的要求是我想在显示器上打印随机值。.随机值的程序是用c编写的。我已经在python中成功运行了我的c代码通过名为“ subprocess”的python模块的脚本。c程序正确生成了随机值,但问题是我通过python创建的gui只接受了一个随机值,并在显示中显示了它。我的要求是GUI连续显示所有生成的值。
我使用了pyqt的lcdnumber小部件。.我附加了我的python和c的示例代码。
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'speedreading.ui'
# Created by: PyQt5 UI code generator 5.13.0
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore,QtGui,QtWidgets
import threading
import subprocess
import time
def count():
global read
read=subprocess.call('./a.out')
return read
t=threading.Thread(target=count)
class Ui_DigitalMeter(object):
def setupUi(self,DigitalMeter):
DigitalMeter.setobjectname("DigitalMeter")
DigitalMeter.resize(575,403)
self.centralwidget = QtWidgets.QWidget(DigitalMeter)
self.centralwidget.setobjectname("centralwidget")
self.lcdNumber = QtWidgets.qlcdnumber(self.centralwidget)
self.lcdNumber.setGeometry(QtCore.QRect(170,90,241,171))
self.lcdNumber.setframeShape(QtWidgets.QFrame.StyledPanel)
self.lcdNumber.setframeShadow(QtWidgets.QFrame.Raised)
self.lcdNumber.setDigitCount(10)
self.lcdNumber.setMode(QtWidgets.qlcdnumber.Dec)
self.lcdNumber.setSegmentStyle(QtWidgets.qlcdnumber.flat)
self.lcdNumber.display(count())
self.lcdNumber.connect(count)
self.lcdNumber.setobjectname("lcdNumber")
DigitalMeter.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(DigitalMeter)
self.menubar.setGeometry(QtCore.QRect(0,575,21))
self.menubar.setobjectname("menubar")
DigitalMeter.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(DigitalMeter)
self.statusbar.setobjectname("statusbar")
DigitalMeter.setStatusBar(self.statusbar)
self.retranslateUi(DigitalMeter)
QtCore.QMetaObject.connectSlotsByName(DigitalMeter)
def retranslateUi(self,DigitalMeter):
_translate = QtCore.QCoreApplication.translate
DigitalMeter.setWindowTitle(_translate("DigitalMeter","MainWindow"))
if __name__ == "__main__":
import sys
t.start()
app = QtWidgets.QApplication(sys.argv)
DigitalMeter = QtWidgets.QMainWindow()
ui = Ui_DigitalMeter()
ui.setupUi(DigitalMeter)
DigitalMeter.show()
sys.exit(app.exec_())
c代码如下:
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
int main()
{
srand(time(0));
int i=rand() % 20;
printf("%d\n",i);
return i;
}
请帮助我解决这个问题... 谢谢。