52黑馬QT筆記之Qt下建立新執行緒之Qt4版本

2021-10-07 09:28:08 字數 1552 閱讀 9199

前提:這個版本是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 滑鼠按下時 若為右鍵,我們...