получение случайных значений, напечатанных в графическом интерфейсе с использованием pyqt5 - PullRequest
0 голосов
/ 08 ноября 2019

я хочу создать графический интерфейс с использованием pyqt5..и мое требование заключается в том, что я хочу печатать случайные значения на дисплее..программа для случайного значения написана на c..и я успешно запустил свой код c в pythonСкрипт через модуль в Python с именем «subprocess». Программа c правильно генерирует случайные значения, но проблема в том, что графический интерфейс, созданный мной через python, просто принимает одно случайное значение и отображает его на дисплее. Он не показывает всегенерируемые случайные значения (это мое требование) .. мое требование заключается в том, чтобы графический интерфейс постоянно отображал все генерируемые значения.

я использовал виджет lcdnumber из pyqt..я прилагаю мой образецкод и 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, 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;
}

, пожалуйста, помогите мне решить эту проблему ... Спасибо ..

...