摘要:實時追加顯示定義一個發送的信號通過類成員對象定義信號處理業務邏輯下面將輸出重定向到中實時顯示開始創建線程連接信號開始線程將當前時間輸出到文本框目前遇到的問題是使用上遇到很多坑像是菜單工具欄各個按鈕之間怎么去綁定特定的槽各種報錯然后現在想
實時追加顯示
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) #定義一個發送str的信號 def write(self, data): self.textWritten.emit(str(data)) class BackendThread(QThread): # 通過類成員對象定義信號 update_date = pyqtSignal(str) # 處理業務邏輯 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", "實時顯示")) self.pushButton.setText(_translate("MainWindow", "開始")) def initUI(self): # 創建線程 self.backend = BackendThread() # 連接信號 self.backend.update_date.connect(self.handleDisplay) # 開始線程 self.backend.start() # 將當前時間輸出到文本框 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使用上遇到很多坑,像是菜單,工具欄各個按鈕之間怎么去綁定特定的槽,各種報錯. 然后現在想到一種方式是,qt designer純用來設計頁面,信號與槽之間的綁定自己寫,修修補補. 參考https://www.cnblogs.com/topsh...
http://www.broadview.com.cn/a...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42058.html
摘要:實時在文本框顯示內容引入這個函數綁定定時器自動執行在類中定義一個定時器并在構造函數中設置啟動及其信號和槽設置計時間隔并啟動計時結束調用方法注意不要加引入這個參考 qt designer使用 開始 新建項目(eric6 項目) 新建窗體(eric6 窗體) 編輯界面(轉到qt designer) 保存 編譯窗體(轉到eric6 窗體) 運行(查看頁面效果) 頁面縮放效果(qt d...
摘要:最近想做一個實用的圖形界面用于查看實時日志本來是準備用開發原本以為功能簡單應該很好上手然而在嘗試了幾次之后徹底放棄了這個想法首先太老了看上去像是上個世紀的應用界面丑陋這是其一如果只是這樣還可以接受然而實際編寫過程中發現也不是那么友好優質文檔 最近想做一個實用的圖形界面用于查看實時日志,本來是準備用tkinter開發,原本以為功能簡單應該很好上手,然而,在嘗試了幾次之后,徹底放棄了這個想...
摘要:如果編輯了按鈕那么接下來就是通過按鈕觸發某個動作首先右擊窗體生成對話框代碼綁定按鈕接著在代碼欄就會看到生成的文件在中創建綁定再次編譯打開文件發現已經綁定服務日志運行中播放暫停退出實時日志服務器開始服務密碼退出狀態信息類 如果編輯了按鈕, 那么接下來就是通過按鈕觸發某個動作 首先右擊窗體,生成對話框代碼 showImg(https://segmentfault.com/img/bVbem...
摘要:工具可以直接使用方式安裝和的環境配置使用集成開發工具的小白,在安裝庫以后,還要對和進行環境配置,將其集成到中。如果小白的或安裝在其他路徑下,則從對應的目錄找到,或者在資源管理器中搜索文件找到安裝路徑。 ...
閱讀 1790·2021-11-24 10:21
閱讀 1202·2021-09-22 15:25
閱讀 3165·2019-08-30 15:55
閱讀 704·2019-08-30 15:54
閱讀 3456·2019-08-30 14:20
閱讀 1653·2019-08-30 14:06
閱讀 635·2019-08-30 13:11
閱讀 3135·2019-08-29 16:43