發表於 PyQT 聊天室Python教學

【Python】PyQT5 Socket 聊天室什麼的一點都不好玩啦 -2 UI 功能串起來!

前情提要:

在上一篇裡已經將我們想要的 UI 利用 QT 設計出來了~
這次想要介紹一下我這次在這個小專案中用過得功能!

小小劇透:

  • QThread
  • lineEdit
  • Button
  • textEdit
  • textBrowser

先介紹一下整個程式架構

  1. MainWindow:負責UI互動
  2. 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

作者:

一位 熱愛資工領域、喜歡好笑事物、偶爾打打網球 的學生 ! For A Better Me!

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.