Qt知識點梳理

2021-09-10 03:43:38 字數 2672 閱讀 9059

///將應用程式的控制權傳遞給qt,程式進入事件迴圈,等待滑鼠,鍵盤等事件

return a.exec();

///這句初始化靜態窗體,內部建立所需要的訊號和槽對應

ui->setupui(this);

//設定style

m_centralwidget->setstylesheet("qwidget#centralwidget;");

//管理多個訊號對應同乙個槽,很好用

//設定窗體透明,在沒有父視窗的情況下可以生效,不會顯示黑色。

leftdownbox->setwindowflags(qt::framelesswindowhint);

leftdownbox->setattribute(qt::wa_translucentbackground);

//遍歷父視窗上的子控制項

qlistwidgets = custombtnwidget->findchildren();

if(!widgets.isempty())

}//開啟視窗獲取檔案或者資料夾路徑

//程式只能啟動乙個

qsharedmemory shared("name");//隨便填個名字就行

if (shared.attach())

return 0;

shared.create(1);

//執行緒 例子

movieshow::movieshow(qobject *parent) : qthread(parent)

movieshow::~movieshow()

endmovie();

quit();

terminate();

//wait();

}void movieshow::startmovie()

this->start();

}void movieshow::endmovie()

void movieshow::setmovie(const qstring &path)

}qpixmap& movieshow::getcurrentpix()

void movieshow::run()}}

///在靜態的介面裡修改了控制項的一些屬性,需要重新構建才會起作用,如果發現沒有修改,重新構建下或許能解決問題

二、父子機制與布局管理

///當使用布局的時候,沒有必要顯式的指定父視窗,布局會自動設定父視窗

qt的父子物件機制是在qobject中實現的。當利用乙個父物件建立乙個子物件(qlabel *label = qlabel(this);)父物件會把這個子物件新增到自己的子物件列表中去,見上圖。當刪除這個父物件時,它會遍歷子物件列表並且刪除每乙個子物件。然後,這些子物件再去 刪除它們包含的子物件列表中的物件。如此反覆遞迴呼叫,直至清空所有物件為止。這種父子物件機制可在很大程度上簡化記憶體管理工作,降低記憶體洩漏的風險。沒有指定父物件的需要手動刪除

(如果在刪除父物件之前刪除了子物件是可以的,父物件會自動把刪掉的子物件從列表中移除,但是刪除了父物件後再去刪除子物件就會出錯,因為子物件已經被刪掉了)

記:在開發中各種情況都可能遇到,有的時候刪除了父物件,還會報其他錯誤(記憶體洩漏什麼的),所以就手動一層層刪。有的時候改的多了,程式關上會報記憶體錯誤,重新構建就沒事了,當然以上說的都是windows平台,切記多執行qmake多重新構建構建。 

布局管理:當子控制項隱藏或者動態刪除或者又show的時候,也能自動適應

qsizepolicy的 preferred  expanding策略

preferred:視窗部件的預設大小就是它比較合適的大小,但是如果需要,還是可以對該視窗部件進行拉伸或者壓縮  

expanding:是可以拉伸或者壓縮該視窗部件,並且希望他能變長變寬。

多出來的視窗空間會分配給expanding視窗部件,而preferred視窗部件不變。

影響布局的方式:

1.布局拉伸因子:setstretch()

2.margin

3.space

4.子視窗部件的最小大小,最大大小或固定大小,當布局管理器在擺放這些視窗部件的時候,它就會考慮這些約束條件

5.對子視窗部件的類進行派生並且重新實現sizehint()函式,由此獲得所需的大小。

三、訊號與槽

///訊號槽必須的 

q_object

///signals關鍵字實際上是乙個巨集,c++預處理器會在編譯程式找到它之前轉為標準c++**

///同理slots也是

2.五、事件

事件發生的先後順序:

3.在qobject中安裝事件過濾器

4.重新實現qobject::event()

5.重新實現某些特定的事件(mousepressevent,paintevent等)

Linux知識點梳理

使用者名稱 主機名 root hostname 使用者名稱 主機名稱 符號含義 當前使用者屬於root使用者 當前使用者屬於普通使用者 注意 對系統進行配置管理時,如要root使用者 檢視主機名稱 hostname設定主機名稱 hostname hadoop senior.com注意 該方式設定,當...

spring 知識點梳理

1.spring預設所有管理的bean都是單例模式 懶載入,所有的bean都是交給spring容器中的map管理,生命週期與spring相同,如果使用多例模式,bean則是交給記憶體管理,生命週期與spring無關 2.ssm分層 控制層 服務層 資料層 對應的註解分別為 controller se...

Linux C知識點梳理

第1章 程式設計和c語言 最簡單的c語言程式 第2章 演算法 程式的靈魂 第3章 簡單的c程式設計 順序程式設計 常量,變數 先定義後使用 常變數,識別符號 資料型別 運算子與表示式,不同型別資料間混合運算 c語句 資料的輸入輸出,printf scanf 函式,字元資料輸入輸出 第4章 選擇結構程...