Qt主線程獲取子執行緒中自定義型別的資料

2021-10-25 03:20:47 字數 1497 閱讀 2875

0x00 本文通過子執行緒產生的資料傳遞給主程,需要掌握如下知識

0x01 建立使用者自定義結構體型別,並向qt元物件系統宣告該型別

#ifndef userdefine_h

#define userdefine_h

#include //qt元型別系統標頭檔案

struct transdata;

q_declare_metatype(transdata)

#endif // userdefine_h

0x02 建立子執行緒,用自定義的結構體接收產生的資料

#ifndef workthread_h

#define workthread_h

#include #include #include "userdefine.h"

class workthread : public qthread

;#endif // workthread_h

#include "workthread.h"

#include workthread::workthread()

workthread::~workthread()

void workthread::run()

else

}

0x03 在主線程中使用子執行緒產生的資料

#ifndef mainwidget_h

#define mainwidget_h

#include #include "workthread.h"

qt_begin_namespace

namespace ui

qt_end_namespace

class mainwidget : public qwidget

;#endif // mainwidget_h

#include "mainwidget.h"

#include "ui_mainwidget.h"

mainwidget::mainwidget(qwidget *parent)

: qwidget(parent)

, ui(new ui::mainwidget)

mainwidget::~mainwidget()

void mainwidget::slotshownetworkstatus(transdata data)

else

}void mainwidget::on_btnstart_clicked()

else

}

Qt自定義事件實現及子執行緒向主線程傳送事件訊息

近期在又一次學習qt的時候,由於要涉及到子執行緒與主線程傳遞訊息,所以便琢磨了一下。順便把有用的記錄下來,方便自己以後查詢及各位同仁的參考!特此宣告,本篇博文主要講述有用的,也就是直接說明怎麼實現,就不打算陳述一大堆理論啦,只是,還是建議大家去查查對應的理論比較好。這樣能對qt的訊息傳送機制的理解更...

自定義執行緒類

根據需求定義執行緒類 import threading from time import 建立執行緒類,繼承threading.thread類 初始化func,args,name等引數,這裡testthread類重寫父類threading.thread了 init 方法 super 函式 解決了子類...

主線程獲得子執行緒中資料

場景 乙個執行緒繼續執行,需要另乙個執行緒執行完 public static void main string args catch interruptedexception e system.out.println 當前執行緒 thread.currentthread 結束 執行緒1 thread...