QThread的使用總結

2021-06-22 21:58:41 字數 681 閱讀 4035

bradley t. hughes 認為: qthread 應該被看做是作業系統執行緒的介面或控制點,而不應該包含需要在新執行緒中執行的**。需要執行的**應該放到乙個qobject的子類中,然後將該子類的物件movetothread到新執行緒中。

public slots:

void emitsig()

signals:

void sig();

}; class object:public qobject

public slots:

void slot()

{

qdebug()<<"from thread slot:" <

另外:

在qt4.3(包括)之前,run 是虛函式,必須子類化qthread來實現run函式。

而從qt4.4開始,run預設呼叫qthread::exec()。這樣一來不需要子類化qthread了,只需要子類化乙個qobject就夠了,這正是被bradley t. hughes推薦的方法。

終於看懂了,但不管怎麼說,都應該是 qthread當初的設計導致的這種問題,而所有文件和例子中都沒有提到該如何使用qthread,進一步加劇了對qthread的這種誤用。

QThread類的使用

概述 ifndef myclass h define myclass h include include class myclass public qthread endif myclass h myclass.cpp檔案 include myclass.h include myclass mycl...

QThread 的使用方法

20101023更新 qthread 使用 qthread與qwidget的使用 起源 昨天不小心看到qt開發人員 bradley t.hughes blog中的一片文章 you are doing it wrong 結果看得頭昏腦脹 好歹也自學了近1年的qt,也一直很小心 很認真地閱讀qt和man...

QThread 的使用方法

1.不使用事件迴圈。這是官方的 manual example 以及相關書籍中都介紹的一種的方法。a.子類化 qthread b.過載 run 函式,run函式內有乙個 while 或 for 的死迴圈 c.設定乙個標記為來控制死迴圈的退出。2.使用事件迴圈。部落格 you are doing it ...