QT自定義關閉 放大 縮小按鈕標題欄

2022-10-10 14:51:11 字數 1208 閱讀 2024

自己開發了乙個傅利葉週期分析軟體,可用於**,**,**、外匯等資料的週期分析和趨勢分析;

1.問題原因

因為要改變qt程式的標題欄的顏色**,增加抬頭說明,授權說明,而qt自帶的標題欄顏色好像無法改變,增加新的按鈕文字更是難上加難,所以就自定義乙個程式的標題欄。如下圖所示。

2.實現步驟

2.1自定義標題欄介面

2.2將系統自帶的標題欄隱藏掉

//設定為無邊框,自定義關閉,放大,縮小按鈕

this->setwindowflags(qt::framelesswindowhint);

2.3 實現關閉、最大化,最小化,按鈕的響應

//

頂部按鈕響應

connect(ui.pbclose, &qpushbutton::clicked, [=]() );

connect(ui.pbmaxwindow, &qpushbutton::clicked, [=]()

else

});connect(ui.pbminwindow, &qpushbutton::clicked, [=]() );

2.4實現按住標題欄拖動視窗移動

系統自帶的標題欄按住滑鼠左鍵可以拖動視窗的作用,這裡也要折現這個功能

通過滑鼠的按下按的時候判斷滑鼠是不是在標題欄上,是的話將左側滑鼠按下設定為true,滑鼠移動函式內部判斷滑鼠是否按下,計算滑鼠的實時位置,和一開始的位置做比較,計算出滑鼠移動的相對位移,然後將主視窗的座標加上相對位移,再移動主視窗,更新起始位置。滑鼠釋放函式中,只要將左鍵按下布林值設定為false;

void fuliyeperiod::mousepressevent(qmouseevent * event

) }

}void fuliyeperiod::mousemoveevent(qmouseevent *event)}

void fuliyeperiod::mousereleaseevent(qmouseevent * event

)

最後就實現了按住標題欄拖動主視窗的功能;還有個問題是系統邊框可以拖動來調整大小的功能,我們下一節再來將如何實現;

QT 放大與縮小按鈕

標頭檔案 painttest.h ifndef painttest h define painttest h include include class painttest public qwidget endif painttest hpainttest.cpp include painttest...

Qt 自定義按鈕

自定義控制項的實現思路如下 a1.新建乙個類,該類繼承qpushbutton,由於qpushbutton繼承於qwidget,因此可以直接在該繼承類裡面進行布局管理和掛載控制項 a2.新建兩個qlabel例項,即buttonimage和buttontxt 是qlable例項 分別用兩個垂直布局管理器...

Qt自定義標籤按鈕

當你接觸到qt時,你會為它極為方便的跨平台方面感到吃驚,從而想嘗試著使用qt。漸漸地你會發現qt自帶的一些控制項不能滿足自己的需要,此時就需要我們自己定義乙個屬於自己的控制項。總所周知,標籤的風格設定模擬較多,但預設的標籤沒有滑鼠響應事件。在你的qt工程中 新增新檔案 c class,輸入類名 cl...