通過上節內容,我們實現了自定義窗體的移動,但是我們缺少乙個標題欄來顯示窗體的圖示、標題,以及控制窗體最小化、最大化、關閉的按鈕。
自定義標題欄後,所有的控制項我們都可以定製,比如:在標題欄中新增換膚、設定按鈕以及其他控制項。
之前,我們將介面移動的事件寫在主介面裡面,這會有乙個問題,一般情況下,是介面隨著標題欄的移動而移動,而並非介面中的所有位置都可以進行拖動,所以我們將事件寫在標題欄中比較合理。
雙擊標題欄會進行窗體的最大化/還原,所以我們需要重寫此事件進行控制。
因為窗體大小發生變化的時候,最大化的圖示、提示應該對應的發生變化,所以在eventfilter中事件觸發時呼叫。
widget::widget(qwidget *
parent)
: qwidget(parent)
注意installeventfilter必須在setwindowtitle、setwindowicon之前呼叫,因為必須先安裝事件過濾器,相應事件觸發時,才會進入標題欄的eventfilter事件中。 Qt之自定義介面(新增自定義標題欄)
通過上節內容,我們實現了自定義窗體的移動,但是我們缺少乙個標題欄來顯示窗體的圖示 標題,以及控制窗體最小化 最大化 關閉的按鈕。自定義標題欄後,所有的控制項我們都可以定製,比如 在標題欄中新增換膚 設定按鈕以及其他控制項。之前,我們將介面移動的事件寫在主介面裡面,這會有乙個問題,一般情況下,是介面隨...
QT 自定義標題欄
1 去除舊的標題欄 去除qdialog對話方塊有上角問號 qt windowflags flags qt dialog flags qt windowclosebuttonhint flags qt framelesswindowhint setwindowflags flags flags qt ...
QT自定義標題欄
ifndef dlgtitle h define dlgtitle h include enum buttontype class dlgtitle public qwidget endif dlgtitle h自定義標題欄類dlgtitle.cpp如下 include dlgtitle.h def...