Qt處理窗體拖拽移動

2021-10-20 18:53:26 字數 864 閱讀 6999

開發的時候經常要自定義widget窗體,ui都是自定義的布局,所以沒有標題欄,想要進行拖拽需要自己處理,所以寫成了乙個類,方便使用。

framelesshelper.h

#ifndef framelesshelper

#define framelesshelper

#include #include class framelesshelper : public qobject

;#endif // framelesshelper

framelesshelper.cpp

#include "framelesshelper.h"

widget(pparent),

ispressed(false)

bool framelesshelper::eventfilter(qobject *obj, qevent *ev)

else if(event->type() == qevent::mousebuttonrelease)

else if(event->type() == qevent::mousemove)}}

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

}

使用起來就很簡單了,對應窗體建構函式裡new出來,把this指標傳進去即可。

#include "framelesshelper.h"

mywidget::mywidget(qwidget *parent) :

qwidget(parent),

ui(new ui::mywidget)

然後就可以實現窗體拖拽了,很方便。

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

設定視窗標誌為無邊框 setwindowflags qt framelesswindowhint windowflags 關於windowflags列舉值很多,其中有乙個windowstaysontophint,可以讓窗體位於所有介面之上,類似於qq主面板,一開啟就在所有軟體之上 比較霸道。設定無邊...

WinForm中拖拽窗體實現移動功能

在windowsform 應用程式中,有時我們會將窗體的formborderstyle屬性設定為none,這時,用滑鼠拖拽窗體時就無法實現移動的功能了 你是否也遇到過這種情況?不要著急,下面就是解決方案.在formbordestyle屬性設定為none的窗體的後台 中新增以下 dllimport u...

Qt學習二 移動無邊框窗體

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