qt開發筆記1

2021-06-27 17:52:34 字數 1134 閱讀 3769

qmainwindow繼承與qwidget

當qwidget 類中介面發生變化(例如:最大/小化)時,觸發showevent()函式。類似函式還有changeevent()keypressevent()paintevent()resizeevent()等等。

qeventloop類

在任何時候,你都可以建立乙個qeventloop的物件,然後呼叫它的exec() 來開始乙個區域性的事件迴圈。它提供了進入和離開事件迴圈的功能。函式int qeventloop::exec(processeventflags flags = allevents)進入事件迴圈,直到exit()被呼叫時再返回;退出函式使事件迴圈退出,事件迴圈會返回到呼叫exec()的地方。

任何時候,都可以建立乙個qeventloop物件,然後呼叫exec()來開始乙個區域性的事件迴圈。這樣可以有一下好處:

2、解決在槽函式中實現介面顯示的時候,出現視窗一閃而過或看不到視窗的問題

例如:不少人遇到過這個問題:在乙個槽函式內建立了乙個視窗物件,卻沒有看到視窗彈出來,或者看到視窗一閃而過。比如:

void ***x::slot1()

當然,大家都知道原因:因為到了後面的大括號處,dlg因為出作用域,會被析構掉。解決方法很簡單,增大w的生存時間即可。比如:

能否用 qeventloop 來解決呢?答案是,可以

void ***x::slot1()

其實,這也是 qdialog::exec() 內部所做的事情,只不過此處不是模態對話方塊而已。

qt事件迴圈機制:

qcombobox 類(下拉控制項)的currentindexchanged訊號觸發相關 

清空控制項(clear)、設定當前值(setcurrentindex)或重置選項(additems)都會產生變化訊號,所以在利用該訊號的應該注意區分訊號產生的原因。

變數儲存問題:

1、已初始化的全域性變數(包括靜態變數)存放在 .data段(資料段)

2、未初始化的全域性變數(包括靜態變數)存放在 .bss段 (文字段)

3、區域性變數存放在棧(stack)中

4、malloc而來的變數儲存在堆(heap)中

5、靜態變數與全域性變數一樣(全域性記憶體中)

6、函式存放在.text(**段)

Qt開發筆記 動畫

1.qt中的動畫效果可以通過qpropertyanimation類來實現,這個類通過設定動畫作用的目標settargetobject,動畫效果屬性setpropertyname,以及設定動畫開始setstartvalue和結束setendvalue位置來定義乙個動畫,並通過呼叫start來開始這個動...

Qt 的介面開發筆記

現在的工作是介面應用程式開發,以前使用c程式設計,現在需要qt 下用到c 做嵌入式介面開發,邊做專案邊總結。在總結的同時,新增例子程式,可以更好的理解理論知識。一般找到的教程是直接操作,沒有定義自己的類,在專案比較小,功能比較單一的情況下可以使用,但是不如依據個人需求重新定義類更方便快捷,qt 工程...

Qt 樹莓派開發筆記

開機自啟動遇到 qt.qpa.screen qxcbconnection could not connect to display export qt qpa platform offscreen 開機自啟qt程式 指令碼程式可以在自動啟動視窗這一步之前執行,但是使用者程式是不行。下面來看一下怎麼啟...