Qt——鼠标拖动调整窗口大小
2016-09-05 17:21
1216 查看
要求:鼠标移到界面边角时,鼠标样式相应地发生改变。
重写mouseMoveEvent,如果鼠标没有按下,则根据鼠标在界面上的位置设置鼠标样式,如果鼠标按下,则根据位置判断该怎样调整界面大小,或者是拖动界面。思路如上,实现起来很简单。但是存在一个问题,如果界面中放了一些其它控件,比如listWidget,此时鼠标在界面边缘移动速度稍微快一些,mouseMoveEvent就会被子控件截获了,鼠标样式不会改变,对于该方法的这个问题,我还没想到好的解决办法。
在Qt中处理windows事件,具体实现如下,参考网上一些内容,我顺便修改优化了一下,源代码如下:
这种方法是借助windows来实现的,所以受系统的限制,比如,拖动放大到与屏幕一样大时,就不能继续放大了,而且其它类直接继承这个类可能会出现问题。
既然通过mouseMoveEvent不能解决鼠标的样式问题,那么可以考虑通过其它事件来实现,下面是我实现的一个类,包括头文件、dll和lib文件。
在VS中项目属性-链接器中进行相关配置即可。
点击下载
实现方法一:
重写mouseMoveEvent,如果鼠标没有按下,则根据鼠标在界面上的位置设置鼠标样式,如果鼠标按下,则根据位置判断该怎样调整界面大小,或者是拖动界面。思路如上,实现起来很简单。但是存在一个问题,如果界面中放了一些其它控件,比如listWidget,此时鼠标在界面边缘移动速度稍微快一些,mouseMoveEvent就会被子控件截获了,鼠标样式不会改变,对于该方法的这个问题,我还没想到好的解决办法。
实现方法二:
在Qt中处理windows事件,具体实现如下,参考网上一些内容,我顺便修改优化了一下,源代码如下:
实现方法三:
既然通过mouseMoveEvent不能解决鼠标的样式问题,那么可以考虑通过其它事件来实现,下面是我实现的一个类,包括头文件、dll和lib文件。在VS中项目属性-链接器中进行相关配置即可。
点击下载
相关文章推荐
- Qt——鼠标拖动调整窗口大小
- Qt:支持鼠标拖动来移动内容的窗口
- WPF无边框窗口鼠标拖动缩放大小
- Qt中隐藏窗口的一部分,根据内容调整窗口大小
- Qt无边框窗口实现拖动和改变大小(修改)
- WPF 无标题栏窗口鼠标拖动改变大小
- QT 笔记:禁止调整窗口大小
- Qt控件大小跟随窗口调整
- QT 鼠标拖动无标题窗口
- qt中让控件位置岁窗口大小自动调整,并且自身大小不变
- QT 笔记:禁止调整窗口大小
- Qt窗口拖动及改变大小
- QT 笔记:禁止调整窗口大小
- Qt:支持鼠标拖动来移动内容的窗口
- qt 窗口自绘、鼠标响应拖动窗口
- QtWidget: 鼠标拖动窗口(没有标题栏时)
- Qt禁止调整窗口的大小
- Qt里鼠标拖动窗口的实现
- Qt调整初始窗口大小
- 禁止用鼠标拖动窗口的大小 - 回复 "合肥的石头" 的问题