QT无边框可移动可改变大小窗体

Win8,win10都出来了,为了迎合系统的扁平化风格,项目要求窗体是无边框,看了一下QT的主要Widget,没有现成的,好吧,那就只有自己写了。

在网上也看到了一些代码,进行小结了一下,无边框窗体大小的改变,移动都需要自己处理,不在像有边框的窗体一样自动处理,处理起来目前有两种方法:

一、完全自己处理窗体的鼠标事件;

二、接收鼠标事件,连接到系统消息,由系统来处理;

 

先介绍第一种方法:

1.首先大家要了解各九宫格的概念

一个窗体可以被划分为上、下、左、右、左上、左下、右上、右下、中间,除了中间部分,其他都需要写程序处理。Padding其实就是鼠标放上去后需要改变鼠标的手势为改变大小形状。

在程序中定义Padding 为2,可定义枚举类型。

2.定义一个方法,参数为鼠标目前的全局位置。目的是获取窗体在屏幕上的位置区域

3.在对话框类中定义几个私有成员变量

boolisLeftPressDown;  // 判断左键是否按下

QPoint dragPosition;   // 窗口移动拖动时需要记住的点
Direction dir;        //
窗口大小改变时,记录改变方向

在窗体的构造函数中初始化变量,并设置窗体为无边框窗体:

isLeftPressDown = false;

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值