1. 程式人生 > >Qt:筆記:多執行緒與介面元件的通訊(下)

Qt:筆記:多執行緒與介面元件的通訊(下)

子執行緒能夠更改介面元件狀態的本質是什麼?

-子執行緒發射訊號通知主執行緒介面更新請求;主執行緒根據具體訊號遺蹟訊號引數對介面元件進行修改。

是否有其他間接的方式可以讓子執行緒更新介面元件的狀態?

解決方案 - 傳送自定義事件

-自定義事件類用於描述介面更新細節

-在主視窗類中重寫事件處理函式event

-使用postEvent函式(非同步方式)傳送自定義事件類物件

·子執行緒指定接受訊息的物件為主視窗物件

·在event事件處理函式更新介面狀態

總結:

Qt中可以傳送自定義事件線上程中操作介面元件

-必須使用postEvent函式進行事件傳送(非同步方式)

-傳送的事件物件必須在堆上建立

-子執行緒建立時必須附帶目標物件的地址資訊

多執行緒通過事件處理間接控制介面元件

Qt平臺的學習需要重點

-GUI系統的核心模型和機制是什麼?

-介面元件間的父子關係有什麼意義?

-訊號與槽是如何使用的?

-多執行緒和介面元件的關係是什麼?