python - pyqt如何显示实时数据
天蓬老师
天蓬老师 2017-04-17 17:48:08
0
2
1085

我有一个处理example.csv的后台程序,现在想把当前读行数实时显示到GUI界面中去。
就是这下面

能否提供一些思路,谢谢!

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

répondre à tous(2)
洪涛

N'est-ce pas ce que fait le mécanisme de slot de signal de PyQt ? La zone de saisie que vous souhaitez saisir, comme LineEdit, correspond à un slot. Un signal est envoyé au lieu de traitement, et PyQt fait le reste. La liaison ne nécessite pas d'appels de fonction spécifiques et le code semble beaucoup plus propre
Dans l'exemple suivant, BackendThread simule un thread en arrière-plan une fois les données traitées, elles sont mises à jour au premier plan et actualisées toutes les secondes. propre logique

# -*- coding: utf-8 -*-

from PyQt4.Qt import *
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import time


class Backend(QThread):
    update_date = pyqtSignal(QString)
    def run(self):
        while True:
            data = QDateTime.currentDateTime()
            self.update_date.emit(QString(str(data)))
            time.sleep(1)


class Window(QDialog):
    def __init__(self):
        QDialog.__init__(self)
        self.resize(400, 100)
        self.input = QLineEdit(self)
        self.input.resize(400, 100)

    def handleDisplay(self, data):
        self.input.setText(data)


if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    b = Backend()
    w = Window()
    b.update_date.connect(w.handleDisplay)
    b.start()
    w.show()
    app.exec_()
伊谢尔伦

Définissez une variable globale et écrivez le numéro de ligne actuel dans la variable lors de la lecture
Le programme planifié met régulièrement à jour la valeur sur l'interface (prenez la variable globale)

C'est la méthode la plus simple et la plus grossière

Une autre méthode consiste à s'exécuter de manière asynchrone lors de la lecture et à mettre à jour directement le nombre de lignes dans l'interface

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal