QT制作软件---窗口跟随鼠标进行移动
书接上文,在QT制作软件—去除系统自带的Dialog边框这篇博客中,我们提到了,如果移除系统自带的Dialog窗口会出现当前创建的窗口,无法拖动的情况。即如下图所示:
图1 |
---|
解决方法:(原理)
- 要拖动窗口,首先需要鼠标选中,然后进行拖动。
- 窗口左上角是有一个位置坐标的,记为a,鼠标点击的位置也是有坐标的,通过globalPos()函数可以得出,我们记录下鼠标第一次点击的坐标,可以求出两者的差值m_pt。
- 在移动的过程中虽然鼠标的位置每次都会移动,但是只要保证差值m_pt不变,我们就可以计算出,窗口左上角应该往哪个位置去移动。
解决方法:(代码)
- 在.h文件中加入两个自定义的函数,和一个用于存储差值的私有成员m_pt
protected:void mouseMoveEvent(QMouseEvent *event); //鼠标移动void mousePressEvent(QMouseEvent *ev); //鼠标单击
private:QPoint m_pt; //m_pt=差值=鼠标当前位置-窗口左上角点
图2 |
---|
- 函数实现代码如下所示:(注意: 这里在.c文件要引入#include < QMouseEvent > 头文件)
void login::mouseMoveEvent(QMouseEvent *event)
{//只允许左键拖动 持续的动作if(event->buttons()&Qt::LeftButton) //buttons处理的是长事件,button处理的是短暂的事件{//窗口跟随鼠标移动//窗口的新位置=鼠标当前位置-差值move(event->globalPos()-m_pt);}
}void login::mousePressEvent(QMouseEvent *ev)
{// 如果鼠标左键按下 单击if(ev->button()&Qt::LeftButton){//求差值=鼠标当前位置-窗口左上角点m_pt=ev->globalPos()-this->geometry().topLeft(); //geometry()是矩形窗口,topLeft()是左上角的信息。}
}
图3 |
---|
- 到此,我们在重新编译运行,就会发现窗口可以随意拖动了。
图4 |
---|
最后,觉得本文内容对你有所帮助的话,希望能点赞收藏,你的鼓励是对我最大的支持!
QT制作软件---窗口跟随鼠标进行移动相关推荐
- 如臂使指——Dojo框架下让浮动窗口跟随鼠标而动
介绍 在web应用的很多场合,需要让浮动窗口跟随鼠标而动.比如这儿举的一个例子:当用户选中网页上一段内容时,弹出工具条让用户进行标记.可以想象一下,有一个在线看书的应用,支持读者在阅读的时候随时做笔记 ...
- processing制作熊猫头像跟随鼠标拖尾
先上效果图: 我演示时电脑有点卡所以看着有些顺畅,你的电脑应该是没有问题的. processing实现跟随鼠标拖尾其实不难,在这篇文章中我将介绍图案封装.封装图案整体缩放.数组的创建方法以及一些逻辑处 ...
- [QT]制作软件级屏保
之前接手的项目中有一个关于屏保的需求是,如果超过30s未进行操作,软件自动进入屏保状态.简单分析一下:所谓未进行操作即是指未接收到键盘或者鼠标事件,超过30s也就是需要用到定时器,屏保状态就是显示一张 ...
- 可以查询天气的日历——QT制作第一个自己的小软件
目录 前言 一.ui界面 1.整体效果 2.主界面 3.天气查询 4.编辑日志 二.程序所有的文件 声明软件图标 1.widget.cpp 2.weather.cpp 3.text.cpp 4.mai ...
- python物体跟着鼠标走_用Python写一个跟随鼠标运动的自定义窗口
背景:因为项目需要,要开发一个在PC上运行的应用程序,生成一个跟随鼠标运动的窗口,并且监听鼠标的点击事件,并在窗口上做相应的显示. 平台:Win7 64位 + Python27 64位 支持库:PyH ...
- 使用Qt Designer制作软件的图形界面
介绍 Qt Designer是一款设计和构建图形用户界面的Qt工具,本文介绍如何使用Qt Manager制作软件的图形界面. 安装 使用Qt Manager时,首先在python的环境中安装pyqt, ...
- OpenCV(3):用Vs+Qt制作一个查看图片相似度的窗口程序
OpenCV(2):用Vs+Qt制作一个显示两张图片的窗口程序 在制作了窗口程序后,在网上找了比较两张图片差异度的算法. 哈希值方法:https://blog.csdn.net/fengbingchu ...
- QT制作的软件全屏显示后最小化,点击任务栏图标打开时不是全屏
QT制作的软件全屏显示后最小化,点击任务栏图标打开时不是全屏 前言 用QT做了一个小软件,把它自带的窗口栏给屏蔽了自己搞了关闭和最小化的按钮,且软件打开是全屏显示的.如今遇到的问题是,打开软件全屏显示 ...
- qt制作简易视频截帧软件
qt制作简易视频截帧软件 1.视频进度条滑动参考 https://blog.csdn.net/zong596568821xp/article/details/78991397?spm=1001.201 ...
最新文章
- Framework 4.0 新关键字dynamic 之我见(二)
- FPGA 的I/O BANK介绍
- 【生生被气死的一周】头秃
- 普中51控制火焰传感器_热电偶在煤气灶天然气保护控制中的应用原理
- VTK:图片之Colored2DImageFusion
- java mysql 事物_java基础之MySQL事务和视图
- 14年macmini装双硬盘_19年性价比超高的5款笔记本电脑推荐
- 【洛谷1527】 [国家集训队]矩阵乘法(整体二分)
- ftp客户端flashfxp破解教程
- 中专计算机应用专业简历模板,2016计算机应用专业个人简历模板
- IntelliJ IDEA插件开发教程
- c语言中整形的最大最小值,c语言整数和浮点数的最大最小值
- 职业倾向测试脸型软件,气质类型测试适合职业
- 项目管理面试经验之谈
- 在线html5行情,Html5版本的全套股票行情图 html54stock
- ACM中关于Output Limit Exceeded和Time Limit Exceeded
- 编程 100个训练题目
- 简易的Java版 eval()函数
- 计算机教师个人业绩成果自述,申报中学信息技术高级教师职称晋升个人业绩成果自述.docx...
- mysql 人员查询总结