最近做的專案,是用qt的完成的,
在用到事件派發的時候,要用自己自定義的事件型別來滿足需要。
具體就是按照qt的官方文件說明,做了乙個簡單的例子,以免忘記,就先寫下來儲存。
首先有個customevent 類,繼承自qevent
#ifndefcustomevent_h
#definecustomevent_h
#include
enumcustomeventtype
;
classcustomevent
:public
qevent
inline
void
setid(int
id)
static
intgettype(customeventtype
etype);
private:
intm_id;
};
#endif//customevent_h
#include"customevent.h"
staticconst
intcet1=
qevent::registereventtype(cet_1);
staticconst
intcet2=
qevent::registereventtype(cet_2);
customevent::customevent(inttype)
:qevent(static_cast
(type))
,m_id(0)
int
customevent::gettype(customeventtypeetype)
return
iret;
}
eventtype的話,需要使用靜態函式qevent::registereventtype(int type)進行註冊。
使用者id的話,官方文件給出為:1000~65535
這樣就做好了自定義的eventtype了。
在使用的時候,
傳送事件的地方:
customevent*cust=newcustomevent(customevent::gettype(customeventtype::cet_1));
cust->setid(15);
此為接受事件的函式:bool ***x::event(qevent *e)
qquickitem::event(e);
return false;
}
此處使用的是過載event函式進行事件處理的,
當然也可以過載qobject::customevent方法
void
qmlcustomctrl::customevent(qevent*e)
以上**在qt5.31上編譯測試通過
Qt 自定義事件
關於qt的自定義事件也是看了幾個大牛的部落格。總結下心得,如有錯誤請指出。一起成長。先給原始碼。也是第一次原創啊,不知道怎麼寫,呵呵。include include class mywidget public qwidget static const int mycustomeventtype 10...
Qt 自定義事件
qt 自定義事件很簡單,同其它類庫的使用很相似,都是要繼承乙個類進行擴充套件。在 qt 中,你需要繼承的類是 qevent。繼承qevent類,你需要提供乙個qevent type型別的引數,作為自定義事件的型別值。這裡的qevent type型別是qevent裡面定義的乙個enum,因此,你是可以...
Qt自定義視窗事件
一 移動主介面 移動主介面是通過按住滑鼠左鍵進行標題欄拖動最終導致主介面移動 由於還有視窗伸縮功能,因此對於標題欄左部,頂部,右部應該騰出5畫素空間給視窗伸縮功能使用,即滑鼠移動到這5畫素空間之內的話,滑鼠形狀就會發生改變 暗示可以伸縮視窗 為什麼只有標題欄騰出5畫素空間,而其他部件 如工具欄 內容...