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...