開發的時候經常要自定義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...