前提:這個版本是qt4.7之前建立新執行緒的方法。
1 建立新執行緒步驟:
1)自定義乙個類,必須繼承於qthread,且執行緒函式必須為run。
2)啟動執行緒必須是thread.start()間接啟動;不能直接呼叫run方法啟動執行緒。thread為自定義類的物件,一般放在主線程作為其成員變數。
#ifndef mythread_h
#define mythread_h
#include
class
mythread
:public qthread //1 自定義類要繼承於qthread 利用新建的object類改,總共改三個地方
;#endif
// mythread_h
2)自定義類.cpp檔案:
#include
"mythread.h"
mythread::
mythread
(qobject *parent)
:qthread
(parent)
//子執行緒處理函式
void mythread::
run(
)
3)主線程標頭檔案:
#ifndef widget_h
#define widget_h
#include
#include
#include
"mythread.h"
namespace ui
class
widget
:public qwidget
;#endif
// widget_h
4)主線程.cpp檔案:
#include
"widget.h"
#include
"ui_widget.h"
#include
#include
"mythread.h"
widget::
widget
(qwidget *parent)
:qwidget
(parent),ui
(new ui::widget)
widget::
~widget()
// 關鍵槽函式:開啟多個執行緒執行多工
void widget::
on_buttonstart_clicked()
//5 利用子執行緒做複雜的資料處理
thread-
>
start()
;}void widget::
timeout()
void widget::
dealmsg()
void widget::
stopthread()
5)主函式、ui介面是一樣的。
總結:其實上面例子就是將複雜的資料處理放在乙個,自定義類的run函式中處理,也就是新執行緒中處理。建立聯絡一般將子執行緒物件放在主線程作為其成員變數。
20黑馬QT筆記之event函式
1 event 函式 1.1 重寫event 函式提前處理事件 事件物件建立完畢後,qt 將這個事件物件傳遞給qobject的event 函式。event 函式並不直接處理事件,而是將這些事件物件按照它們不同的型別,分發給不同的事件處理器 event handler 如上所述,event 函式主要用...
2020 8 4黑馬Qt學習筆記
一。手動重繪視窗 update 二。qbitmap和qpixmap的區別 繼承關係 qbitmap繼承於qpixmap ps 此處學了以下如何新增資源檔案和如何將資源檔案應用於視窗繪圖 1.如何新增資源檔案 2.如何將資源檔案應用於視窗繪圖 注釋部分為另一種實現視窗繪製的方法 三。qpixmap繪圖...
33黑馬QT筆記之不規則視窗
1 建立不規則視窗的步驟 1 重寫繪圖事件,在繪圖事件中顯示一張。2 但是顯示後仍帶有視窗的邊框,所以我們需要在視窗的建構函式中去掉邊框,並使其類似一樣,使視窗也透明顯示。3 由於邊框沒了,即右上角的按鈕無了,滑鼠無法操作,所以需要重寫滑鼠事件,包括滑鼠按下和移動事件。4 滑鼠按下時 若為右鍵,我們...