Qt學習筆記(七)自製標題欄 邊框陰影 圓角效果

2021-08-20 13:19:09 字數 1230 閱讀 2278

this->setwindowflags(qt::framelesswindowhint);//去除qt自帶的標題欄
去除標題欄後為了實現窗體的視窗最大化、最小化、關閉以及移動事件,需要自定義以下操作:

自製qpushbutton按鈕,連線到showmax()事件上

void qixin_companyitemclass::showmax()

void shownorma()

自製qpushbutton按鈕,連線到showmin()事件上

void showmin()

自製qpushbutton按鈕,連線到onbuttoncloseclicked()事件上

void onbuttoncloseclicked()

過載 mousepressevent、mousemoveevent、mousereleaseevent

void mousepressevent(qmouseevent *event);

void mousemoveevent(qmouseevent *event);

void mousereleaseevent(qmouseevent *event);

bool m_ispressed;

qpoint m_startmovepos;

void mousepressevent(qmouseevent *event)

}return qwidget::mousepressevent(event);

}void mousemoveevent(qmouseevent *event)

return qwidget::mousemoveevent(event);

}void mousereleaseevent(qmouseevent *event)

this->setattribute(qt::wa_translucentbackground);//設定視窗背景透明

過載paintevent,窗體要在四周留出10的間距,其窗體要設定圓角樣式 border-radius:5px;

void paintevent(qpaintevent *event)

qwidget::paintevent(event);

}

Qt之自建標題欄

在專案中遇到linux環境重dialog在雙擊標題欄時對話方塊會最大化的情況,在設定maxmiumsize等都沒有效果的情況下所以自設標題欄。大體思路是通過三個空間組成標題欄的圖示 標題 關閉按鍵,並且通過滑鼠事件來控制框體的移動。通過繼承qdialog,將標題欄和將所要顯示的內容的widget組合...

QT 去掉標題欄和去掉標題欄後移動視窗

在用qt編寫介面時,去掉標題欄方法比較簡單,就一行 this setwindowflags qt framelesswindowhint 去掉以後又發現乙個問題,就是不能移動視窗了,於是我就重寫了三個滑鼠事件,大致 如下 h檔案的 include protected void mousepresse...

Qt 個性化標題欄,自定義標題欄

目前還沒有達到自己滿意的地步,魔方別人寫的的,先提供參考,後面在加入新的東西 標頭檔案 ifndef titlebar h define titlebar h include class qlabel class qpushbutton class titlebar public qwidget e...