前情提要:
在上一篇裡已經將我們想要的 UI 利用 QT 設計出來了~
這次想要介紹一下我這次在這個小專案中用過得功能!
小小劇透:
- QThread
- lineEdit
- Button
- textEdit
- textBrowser
先介紹一下整個程式架構
- MainWindow:負責UI互動
- ClientRecv:負責通訊連結
兩個Class的架構就會像是下面的圖片一樣
ClientRecv裡面的功能以後沒有意外的話會介紹到的~
MainWindow 繼承的 UI_MainWindow 就是之前轉換好的 .py檔喔!
在 MainWindow裡面的 login, send_msg 都是之後在 Button按下去的時候會出發的喔!
可是這時候我們還沒有將事件和我們的函式連結在一起阿!
所以我們要到剛剛轉好的檔案裡面加兩行
class Ui_MainWinodw:
def setupUi(object):
....
self.login_pushButton.clicked.connect(self.login)
self.msg_pushButton.clicked.connect(self.send_msg)
....
login_pushButton
msg_pushButton
這兩個都是button的 ID 這兩行做的事情就是將Button按下之後(clicked)執行login和send_msg這兩個function~!
然後 ClientRecv 裡面的pyqtSignal就是用來讓UI Thread 與 Recvive Message Thread進行兩個執行緒間的交換資料與溝通啦!
至於QThread怎麼會有run 這個 function呢!
因為這就跟一般的multithreading一樣可以用start function來啟動它~!!!
所以之後要啟用就可以直接呼叫.start()了!!
這篇的分享我大概到這邊結束了!
這篇講的好像還是有一點模糊
因為我到現在只有把架構打出來而已
下一篇我會將內容都加上去放在Github上面然後解釋內容的~
期待下次有時間可以上來寫吧XD