Qt去边框,可以实现拉大缩小窗口。
2014-03-05 17:01
621 查看
Qt中去掉边框是很容易的setWindowFlags(Qt::FramelessWindowHint|Qt::WindowMinMaxButtonsHint);就可以实现。
但是去掉边框之后就不能实现鼠标对窗口的拉大和缩小,要实现对窗口的拉大缩小,有两种方案:
1:去处理bool winEvent( MSG *message, long *result );重新实现,由于Qt可以接收Windows的消息,所以可在winEvent()函数中去处理Windows的消息,从而达到效果。
注意的是,要包含头文件Windows.h ,如果要使用宏GET_X_LPARAM和GET_Y_LPARAM就要包含#include <WindowsX.h>.
2: 去实现bool eventFilter( QObject * watched, QEvent * event);
void mouseReleaseEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent *event);
但是去掉边框之后就不能实现鼠标对窗口的拉大和缩小,要实现对窗口的拉大缩小,有两种方案:
1:去处理bool winEvent( MSG *message, long *result );重新实现,由于Qt可以接收Windows的消息,所以可在winEvent()函数中去处理Windows的消息,从而达到效果。
注意的是,要包含头文件Windows.h ,如果要使用宏GET_X_LPARAM和GET_Y_LPARAM就要包含#include <WindowsX.h>.
2: 去实现bool eventFilter( QObject * watched, QEvent * event);
void mouseReleaseEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent *event);
相关文章推荐
- Qt - QDialog,QWidget实现模态及非模态(模态Widget不能有父窗口,如果设置无边框就不能阻塞父窗口,但是可以强行设置指定Qt::Dialog,还可以setAttribute(Qt::WA_ShowModal),很多讲究)good
- 手把手教你打造c#透明、自定义边框、可拖动、可以放大缩小的窗口
- 隐藏QT窗口边框 并且在隐藏后实现窗口拖拽 同时实现透明度
- QT 窗口设置成无边框并实现拖动
- 隐藏QT窗口边框 并且在隐藏后实现窗口拖拽 同时实现透明度
- Qt之无边框自定义最小化、关闭按钮并实现窗口移动
- QT实现可移动和改变尺寸的无边框窗口
- java JFrame去掉标题栏后如何实现鼠标移动到边框可以进行拖拉以放大缩小
- QT 实现子控件的透明,可以实现主窗口设置背景皮肤
- Qt/QML窗口阴影边框实现
- Qt无边框窗口实现拖动和改变大小(修改)
- Qt实现窗体无边框,并且点击windows任务栏图标可以最小化
- <Qt C++>无边框窗口实现拖拽缩放
- Winform窗口去边框实现可以移动
- 转:隐藏QT窗口边框 并且在隐藏后实现窗口拖拽
- Qt无边框模态窗口QDialog在点其它窗口时实现闪烁效果
- Winform窗口去边框实现可以移动
- Qt:基于widget方式的窗口阴影边框的实现
- Qt/QML 窗口阴影边框实现
- Qt中,当QDockWidget的父窗口是一个不可以拖动的QTabWidget的时候实现拖动的方法