Qt 通過滑鼠拖拽,來移動無邊框窗體

2021-07-26 21:52:41 字數 545 閱讀 4310

設定視窗標誌為無邊框

setwindowflags(qt::framelesswindowhint | windowflags());
關於windowflags列舉值很多,其中有乙個windowstaysontophint,可以讓窗體位於所有介面之上,類似於qq主面板,一開啟就在所有軟體之上-比較霸道。

設定無邊框之後,窗體是無法移動的,下面我們介紹兩種方式來進行移動。

// 滑鼠相對於窗體的位置 event->globalpos() - this->pos()

void widget::mousepressevent(qmouseevent *event)

}// 若滑鼠左鍵被按下,移動窗體位置

void widget::mousemoveevent(qmouseevent *event)

// 設定滑鼠未被按下

void widget::mousereleaseevent(qmouseevent *event)

Qt無邊框視窗拖拽和陰影

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

Qt學習二 移動無邊框窗體

本程式實現了,可以關閉乙個視窗,還可以拖著視窗到處跑的功能。一 mydialog.h的程式 ifndef mydialog h define mydialog h include include ui mydialog.h include 引用滑鼠類標頭檔案 include 引用按鈕類標頭檔案 cl...

Qt 通過滑鼠移動視窗

用 qt 開發桌面端程式的時候,通常會去掉自帶的標題欄,然後自定義乙個標題欄,那麼就需要實現通過滑鼠來移動窗體。實現邏輯其實很簡單,只需要捕捉到滑鼠的座標點,在 mousemove 事件中實現窗體移動。void actionwidget mousepressevent qmouseevent eve...