qt的事件系統一點點基礎知識

2021-07-03 13:16:41 字數 1514 閱讀 6947

對於非科班出身自學的人,編**tm難。略讀了qt幫助文件的 the event system得到了一些淺薄的認識。這個筆記想記錄一下qt事件系統的一點點基礎知識。qt自定義了一系列事件,作為qt使用者我們可以直接用,例如qmouseevent之類的。每乙個事件其實是qevent這個類的乙個子類。當然使用者也可以自己定義自己所需要的事件,當然也需要定義成qevent子類。定義自己子類的時候,event 的 type可以定義從1000-65535,這點是比較重要的,因為定義自己的事件而且把type定義到1000以前可能會出現問題,當然我自己未做嘗試。

bool somewidget::event(qevent *event)

return qwidget::event(event);

}

這個myfunc()事件處理函式要定義再somewidget這個類裡。

還有乙個簡單的例子是:

標頭檔案:

#ifndef dialog_h

#define dialog_h

#include #include namespace ui

static const qevent::type myeventtype = (qevent::type)qevent::registereventtype(qevent::user+1000);

static const qevent::type myeventtypee = (qevent::type)qevent::registereventtype(qevent::user+1001);

class dialog : public qdialog

;#endif // dialog_h

原始檔:

#include "dialog.h"

#include "ui_dialog.h"

dialog::dialog(qwidget *parent) :

qdialog(parent),

ui(new ui::dialog)

dialog::~dialog()

void dialog:: mousepressevent(qmouseevent *evt)

else if(evt->button()==qt::rightbutton)

}bool dialog::event(qevent *evt)

if(evt->type()==myeventtype)

else if (evt->type()==myeventtypee)

return qdialog::event(evt);

}

widget與widget_2是兩個做成led的widget可以有開關功能, 用ui設計師拖了連個led上去實驗。此**可以看出,檢測到qmousepressevent(似乎是比較底層的東西),執行mousepressevent()函式,在mousepressevent()函式裡,我們發出事件,發出事件後,event()函式裡會處理事件。

深度學習的一點點一點點知識

我們手裡有大量的x和y,求權重訓練的是權重資料樣本 xwy 身高0體重0 血型0.3 腳指頭0.8 一組x計算出對應的乙個y 計算過程是w 下面的就是最基礎的公式 我們已知資料是大量的x和y 希望通過 西塔 來獲得w 我們的學習才剛剛開始,首先需要理解的是與門 x1x2y0 0001 0100 11...

一點點的失落

內心總是有種種失落。說不出來,但是這種壓力一直存在,壓得人喘不過氣來,內心最大的矛盾,就是自己到底是個好人還是壞人,人家說不做虧心事,半夜不怕鬼敲門,我並沒有作什麼對不起別人的事情,或許對不起的,是自己的父母。下午跟自己的妹妹聊天。妹妹是那樣的信任我,想起前一段時間一度想著的死亡,真的是很愚蠢啊,但...

回溯的一點點

經典的八皇后問題是用回溯法解決的乙個好例子。以下是該程式回溯的部分 while x 0 else x 繼續尋找下乙個皇后的位置,還沒找到完整解決方案 else 未找到可以放置第x個皇后的位置,到該步為止,已經知道不滿足要求 從上面 可以看出,回溯法的幾個關鍵點 1.到該步為止,所求部分解都滿足要求,...