Qt跨執行緒的訊號和槽的使用

2022-02-02 08:42:50 字數 1527 閱讀 3498

connect用於連線qt的訊號和槽,在qt程式設計過程中不可或缺。它其實有第五個引數,只是一般使用預設值,在滿足某些特殊需求的時候可能需要手動設定。

qt::autoconnection:

1 #ifndef mainwindow_h

2 #define mainwindow_h

3 4 #include 5 #include 6

7 namespaceui

10

11 class qttestthread : publicqthread ;

24

25 class mainwindow : publicqmainwindow

26 ;

47

48 #endif //mainwindow_h

原始檔:

1 #include "mainwindow.h"

2 #include "ui_mainwindow.h"

3 #include 4

5 qttestthread::qttestthread(qobject *parent)

6 : qthread(parent)

7 9

10 qttestthread::~qttestthread()

11 13

14 voidqttestthread::run()

15 19

20 mainwindow::mainwindow(qwidget *parent) :

21 qmainwindow(parent),

22 ui(newui::mainwindow)

23 30

31 numcoon = 0;

32 //emit sigfirst();

33

34 testthread = new qttestthread(this);

35 //connect(testthread, signal(sigsecond()), this, slot(slotthread()));//沒有第五個引數,也就是採用預設的連線方式

36 //connect(testthread, signal(sigsecond()), this, slot(slotthread()), qt::queuedconnection);//效果同上

37 connect(testthread, signal(sigsecond()), this, slot(slotthread()), qt::blockingqueuedconnection);//效果不同

38 testthread->start();

39 }

40

41 mainwindow::~mainwindow()

42 45

46 voidmainwindow::slotfirst()

47 51

52 voidmainwindow::slotthread()

53

Qt跨執行緒的訊號和槽的使用 zz

connect用於連線qt的訊號和槽,在qt程式設計過程中不可或缺。它其實有第五個引數,只是一般使用預設值,在滿足某些特殊需求的時候可能需要手動設定。qt autoconnection 1 ifndef mainwindow h 2 define mainwindow h 3 4 include 5...

QT跨執行緒連線訊號和槽

對qt的訊號和槽理解較為初級,今天通過多次嘗試,終於學會了跨執行緒連線訊號和槽。其基本方法如下。1.無引數傳遞時 1 定義 signal void signal1 2 連線部分寫法 connect p class1,類1的指標 signal signal1 類1的訊號 p class2,類2的指標 ...

QT訊號槽的跨執行緒連線

qt中的執行緒可以通過繼承qthread類,重寫run 函式,run 函式即新執行緒的入 通過start 函式啟動新執行緒 我我們實現的這個qthread的派生類,只不過是用來管理執行緒的。run 函式返回,新執行緒結束,可以在呼叫 exec 函式,在新執行緒中也開啟時間迴圈。繼承自qobject的...