QT多執行緒簡單實現及變數傳遞

2021-07-24 15:04:16 字數 1618 閱讀 5104

自定義訊號與槽

qt多執行緒簡單實現

多執行緒間變數傳遞

主線程類:

//export_key.h

#ifndef export_key_h

#define export_key_h

#include "main_widget.h"

namespace ui

class texport_work;

class export_key : public qwidget

;#endif // export_key_h

//export_key.cpp

#include "export_key.h"

#include "ui_export_key.h"

#include

//#define printpk

export_key::export_key(qwidget *parent) :

qwidget(parent),

ui(new ui::export_key)

//槽的實現

int export_key::send_cmd(int *len,uchar* pk)

; n = hextostr(cmd,*len,cmd2);

cmd2[n] = '\0';

qdebug("send pk:%s \n",cmd2);

#endif

ui->pbenter->setenabled(true);

return errcode_noerr;

}export_key::~export_key()

工作執行緒類:

#ifndef export_work_h

#define export_work_h

#include

#include "main_widget.h"

//繼承qthread基類,重寫虛函式run

class texport_work : public qthread

;#endif // export_work_h

//export_work.cpp

#include "export_work.h"

#include "export_key.h"

#include

texport_work::texport_work()

//重寫虛函式run,在虛函式中實現要在工作執行緒中要做的事情,開啟事件迴圈

void texport_work::run()

start_export = 0;

}void texport_work::stop()

void texport_work::timerthread()

}

總結:

1.跨執行緒連線訊號與槽時注意連線方式,也就是connect函式第五個引數

2.實現多執行緒方式,工作執行緒繼承qthread基類,重寫虛函式run在run中實現工作執行緒需要做的事情;在主線程中建立工作執行緒的例項,可以對工作執行緒進行控制。

3.多執行緒間傳遞變數的一種是直接通過訊號與槽的連線實現,注意連線方式。

Qt多執行緒間傳遞變數方法總結

參考 qt執行緒間共享資料主要有兩種方式 一是使用共享記憶體。即使用乙個兩個執行緒都能夠共享的變數 如全域性變數 這樣兩個執行緒都能夠訪問和修改該變數,從而達到共享資料的目的 二是使用singal slot機制,把資料從乙個執行緒傳遞到另外乙個執行緒。textdevice.h ifndef text...

Qt 中多執行緒訊號傳遞 例項

qt 多執行緒的訊號傳遞 qobject connect const qobject sender,const char signal,const qobject receiver,const char method,qt connectiontype type autoconnection 這個函...

Qt 中多執行緒訊號傳遞 例項

2011 06 30 17 31 佚名 網際網路 字型大小 t t 本文介紹的是qt 中多執行緒訊號傳遞 例項,關於qt 中的多執行緒,相信友們接觸了不少,先來看本文介紹。ad qt 多執行緒的訊號傳遞 qobject connect const qobject sender,const char ...