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

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

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

天蓬老师
天蓬老师

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

全部回覆(2)
洪涛

PyQt的signal-slot機制不就是乾這個的嗎,你要輸入的輸入框比如LineEdit對應一個slot,處理的地方發送一個signal,剩下的就由PyQt自己做綁定,都不用具體的函數調用,程式碼看起來清爽多了
下面這個例子,BackendThread模擬後台線程,數據處理完了更新到前台,一秒鐘一刷新,換成你自己的邏輯就可以

# -*- 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_()
伊谢尔伦

定義一個全域變量,讀的時候把目前行數寫到變數裡
定時程式定時更新介面上的值(取全域變數)

這是最簡單粗暴的辦法

另一種,讀取的時候非同步執行,直接把行數更新到介面

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!