執行緒間通訊:
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...