Qt無邊框視窗1,簡單示例

2021-08-07 17:31:12 字數 1462 閱讀 7334

現在較多軟體使用扁平化的介面風格,設計的很漂亮,感覺也比較簡約。

這裡給出一種qt實現這種扁平化主視窗的示例,實現一些基本的標題欄拖放、最大最小關閉按鈕等處理。

外觀:mainwindow去掉選單欄、工具條、狀態列等,新增1個widget作為標題欄,它和內容區域使用垂直布局。

標題欄新增qlabel,作為應用程式圖示;和乙個標題文字,外加3個按鈕。水平布局。

拖動:就是滑鼠按下、移動、彈起三個訊息的處理。

雙擊標題欄最大化:給標題欄installeventfilter,處理雙擊訊息。

mainwindow.h:

#ifndef mainwindow_h

#define mainwindow_h

#include #include namespace ui

class mainwindow : public qmainwindow

;#endif // mainwindow_h

mainwindow.cpp:

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include mainwindow::mainwindow(qwidget *parent) :

qmainwindow(parent),

ui(new ui::mainwindow)

"); //另外在設計器內檢視widgettitle樣式,內有標題欄各個子控制項的樣式設定

}mainwindow::~mainwindow()

bool mainwindow::eventfilter(qobject *obj, qevent *e)

}return qobject::eventfilter(obj, e);

}void mainwindow::mousepressevent(qmouseevent *e)//滑鼠按下事件

}void mainwindow::mousemoveevent(qmouseevent *e)//滑鼠移動事件

}void mainwindow::mousereleaseevent(qmouseevent *e)//滑鼠釋放事件

void mainwindow::on_btnmin_clicked()

void mainwindow::on_btnmax_clicked()

else

mismax = !mismax;

}void mainwindow::on_btnexit_clicked()

qt無邊框視窗1 簡單示例.rar:

Qt無邊框視窗拖拽和陰影

只需要一行 即可實現 及執行效果 先要去qwidget裡面找到滑鼠事件函式 理一下座標的位置情況 左上角 螢幕的左上角 中間的視窗 程式的視窗 箭頭 滑鼠位置 座標位置滿足 x y z 在designer裡面拖乙個widget出來叫shadowwidget shadowwidget的顏色為灰色,我們...

Qt實現 可移動的無邊框視窗

日常開發中,因為需要自定義標題欄來實現更好的效果,所以經常需要隱藏視窗自帶的標題欄。在qt中,通過setwindowflags qt framelesswindowhint 函式對當前視窗設定無邊框,但是這樣存在乙個問題,就是視窗無法被滑鼠拖動了,所以這時候就需要重寫一下事件,來實現視窗的移動。先看...

form 無邊框 移動視窗

winform 最近想弄乙個桌面專案 用到了 製作無邊框的窗體 這裡記錄下 第一步 將 form1的 fromborderstyle 設定為none 第二步 拖乙個panl 放到 窗體的邊上 設定panel的mosedown 事件 可直接控制的控制項 region 視窗移動 定義無邊框窗體form ...