摘要:實(shí)時(shí)追加顯示定義一個(gè)發(fā)送的信號(hào)通過類成員對(duì)象定義信號(hào)處理業(yè)務(wù)邏輯下面將輸出重定向到中實(shí)時(shí)顯示開始創(chuàng)建線程連接信號(hào)開始線程將當(dāng)前時(shí)間輸出到文本框目前遇到的問題是使用上遇到很多坑像是菜單工具欄各個(gè)按鈕之間怎么去綁定特定的槽各種報(bào)錯(cuò)然后現(xiàn)在想
實(shí)時(shí)追加顯示
code
from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtCore import * from PyQt5.QtWidgets import * import time import sys class EmittingStream(QtCore.QObject): textWritten = QtCore.pyqtSignal(str) #定義一個(gè)發(fā)送str的信號(hào) def write(self, data): self.textWritten.emit(str(data)) class BackendThread(QThread): # 通過類成員對(duì)象定義信號(hào) update_date = pyqtSignal(str) # 處理業(yè)務(wù)邏輯 def run(self): while True: data = QDateTime.currentDateTime() currTime = data.toString("yyyy-MM-dd hh:mm:ss") self.update_date.emit( str(currTime) ) time.sleep(1) class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(800, 600) self.centralWidget = QtWidgets.QWidget(MainWindow) self.centralWidget.setObjectName("centralWidget") self.gridLayout = QtWidgets.QGridLayout(self.centralWidget) self.gridLayout.setObjectName("gridLayout") self.pushButton = QtWidgets.QPushButton(self.centralWidget) self.pushButton.setObjectName("pushButton") self.gridLayout.addWidget(self.pushButton, 0, 0, 1, 1) self.textEdit = QtWidgets.QTextEdit(self.centralWidget) self.textEdit.setObjectName("textEdit") self.gridLayout.addWidget(self.textEdit, 1, 0, 1, 1) MainWindow.setCentralWidget(self.centralWidget) #下面將輸出重定向到textEdit中 sys.stdout = EmittingStream(textWritten=self.handleDisplay) sys.stderr = EmittingStream(textWritten=self.handleDisplay) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "實(shí)時(shí)顯示")) self.pushButton.setText(_translate("MainWindow", "開始")) def initUI(self): # 創(chuàng)建線程 self.backend = BackendThread() # 連接信號(hào) self.backend.update_date.connect(self.handleDisplay) # 開始線程 self.backend.start() # 將當(dāng)前時(shí)間輸出到文本框 def handleDisplay(self, data): cursor = self.textEdit.textCursor() cursor.movePosition(QtGui.QTextCursor.End) # self.textEdit.setText(data) cursor.insertText(data + " ") self.textEdit.setTextCursor(cursor) self.textEdit.ensureCursorVisible() if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() win = Ui_MainWindow() win.setupUi(MainWindow) win.initUI() MainWindow.show() sys.exit(app.exec_())
result
目前遇到的問題是qt designer使用上遇到很多坑,像是菜單,工具欄各個(gè)按鈕之間怎么去綁定特定的槽,各種報(bào)錯(cuò). 然后現(xiàn)在想到一種方式是,qt designer純用來設(shè)計(jì)頁面,信號(hào)與槽之間的綁定自己寫,修修補(bǔ)補(bǔ). 參考https://www.cnblogs.com/topsh...
http://www.broadview.com.cn/a...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/42058.html
摘要:實(shí)時(shí)在文本框顯示內(nèi)容引入這個(gè)函數(shù)綁定定時(shí)器自動(dòng)執(zhí)行在類中定義一個(gè)定時(shí)器并在構(gòu)造函數(shù)中設(shè)置啟動(dòng)及其信號(hào)和槽設(shè)置計(jì)時(shí)間隔并啟動(dòng)計(jì)時(shí)結(jié)束調(diào)用方法注意不要加引入這個(gè)參考 qt designer使用 開始 新建項(xiàng)目(eric6 項(xiàng)目) 新建窗體(eric6 窗體) 編輯界面(轉(zhuǎn)到qt designer) 保存 編譯窗體(轉(zhuǎn)到eric6 窗體) 運(yùn)行(查看頁面效果) 頁面縮放效果(qt d...
摘要:最近想做一個(gè)實(shí)用的圖形界面用于查看實(shí)時(shí)日志本來是準(zhǔn)備用開發(fā)原本以為功能簡(jiǎn)單應(yīng)該很好上手然而在嘗試了幾次之后徹底放棄了這個(gè)想法首先太老了看上去像是上個(gè)世紀(jì)的應(yīng)用界面丑陋這是其一如果只是這樣還可以接受然而實(shí)際編寫過程中發(fā)現(xiàn)也不是那么友好優(yōu)質(zhì)文檔 最近想做一個(gè)實(shí)用的圖形界面用于查看實(shí)時(shí)日志,本來是準(zhǔn)備用tkinter開發(fā),原本以為功能簡(jiǎn)單應(yīng)該很好上手,然而,在嘗試了幾次之后,徹底放棄了這個(gè)想...
摘要:如果編輯了按鈕那么接下來就是通過按鈕觸發(fā)某個(gè)動(dòng)作首先右擊窗體生成對(duì)話框代碼綁定按鈕接著在代碼欄就會(huì)看到生成的文件在中創(chuàng)建綁定再次編譯打開文件發(fā)現(xiàn)已經(jīng)綁定服務(wù)日志運(yùn)行中播放暫停退出實(shí)時(shí)日志服務(wù)器開始服務(wù)密碼退出狀態(tài)信息類 如果編輯了按鈕, 那么接下來就是通過按鈕觸發(fā)某個(gè)動(dòng)作 首先右擊窗體,生成對(duì)話框代碼 showImg(https://segmentfault.com/img/bVbem...
摘要:工具可以直接使用方式安裝和的環(huán)境配置使用集成開發(fā)工具的小白,在安裝庫以后,還要對(duì)和進(jìn)行環(huán)境配置,將其集成到中。如果小白的或安裝在其他路徑下,則從對(duì)應(yīng)的目錄找到,或者在資源管理器中搜索文件找到安裝路徑。 ...
摘要:是由一系列模塊組成。超過個(gè)類,函數(shù)和方法。有兩種證書,和商業(yè)證書。包含了窗口系統(tǒng)事件處理圖像基本繪畫字體和文字類。包含了協(xié)議的類。提供了處理數(shù)據(jù)庫的工具。廢棄了和的調(diào)用方式,使用了新的信號(hào)和處理方式。不再支持被標(biāo)記為廢棄的或不建議使用的。 本教程的目的是帶領(lǐng)你入門PyQt5。教程內(nèi)所有代碼都在Linux上測(cè)試通過。PyQt4 教程是PyQt4的教程,PyQt4是一個(gè)Python(同時(shí)支...
閱讀 1808·2021-11-24 10:21
閱讀 1219·2021-09-22 15:25
閱讀 3178·2019-08-30 15:55
閱讀 718·2019-08-30 15:54
閱讀 3468·2019-08-30 14:20
閱讀 1666·2019-08-30 14:06
閱讀 646·2019-08-30 13:11
閱讀 3155·2019-08-29 16:43