Qt執行緒間通訊 自定義事件

2021-08-21 11:25:00 字數 1481 閱讀 1235

執行緒間通訊:

1.自定義事件:postevent();

2.訊號與槽【本質也是通過自定義事件實現的】

注意:每個執行緒都有自己的事件迴圈

自定義事件:

1.從qevent繼承;

2.registereventtype();

//會返回全域性唯一的事件型別

4.重寫event方法;//接收的那一方重寫event

執行緒間通訊:

2.可攜帶自定義資料;

3.邏輯清晰不易混亂;

程式執行截圖如下:

**如下:

customevent.h

#ifndef customevent_h

#define customevent_h

#include #include class customevent:public qevent

;#endif // customevent_h

widget.h

#ifndef widget_h

#define widget_h

#include #include "customevent.h"

#include class widget : public qwidget

;#endif // widget_h

customevent.cpp

#include "customevent.h"

qevent::type customevent::m_eventtype=(qevent::type)registereventtype();

customevent::customevent(const qstring &msg)

:qevent(evtype()),m_msg(msg)

qevent::type customevent::evtype()

main.cpp

#include "widget.h"

widget.cpp

#include "widget.h"

public:

******thread(qobject *receiver):m_receiver(receiver)

void run()

}qobject *m_receiver;

};widget::widget(qwidget *parent)

: qwidget(parent)

widget::~widget()

bool widget::event(qevent *e)

return qwidget::event(e);

}

Qt 自定義事件 多執行緒與GUI執行緒通訊

建立並使用自定義事件的流程如下 繼承qevent,註冊 獲得事件type 內建事件的值都小於1000,大於1000的值都用於自定義事件 建立qevent的子類 對於之前一些版本,是有qcustomevent這個類的,一般是繼承這個類,但是5.5版本已經沒有這個類了 在建構函式裡,獲得自己的事件名,再...

Qt 自定義事件

最近做的專案,是用qt的完成的,在用到事件派發的時候,要用自己自定義的事件型別來滿足需要。具體就是按照qt的官方文件說明,做了乙個簡單的例子,以免忘記,就先寫下來儲存。首先有個customevent 類,繼承自qevent ifndef customevent h define customeven...

Qt 自定義事件

關於qt的自定義事件也是看了幾個大牛的部落格。總結下心得,如有錯誤請指出。一起成長。先給原始碼。也是第一次原創啊,不知道怎麼寫,呵呵。include include class mywidget public qwidget static const int mycustomeventtype 10...