Qt6-鼠标移动窗口
【摘要】
新版的Qt6 鼠标事件中函数是有更新了,不过帮助文档还没有更新过来。希望官方也要快速同步呦。
在Qt5中代码
* * 鼠标按下操作 * 记录当前坐标 */static QPoint last(0,0); //保存坐标const int TITLE_HEIGHT = 50; //这里也可以使用宏定义...
新版的Qt6 鼠标事件中函数是有更新了,不过帮助文档还没有更新过来。希望官方也要快速同步呦。
在Qt5中代码
-
*
-
* 鼠标按下操作
-
* 记录当前坐标
-
*/
-
static QPoint last(0,0); //保存坐标
-
const int TITLE_HEIGHT = 50; //这里也可以使用宏定义,保存标题高度,也就是鼠标点击区域的高度
-
void MainWindow::mousePressEvent(QMouseEvent *event)
-
{
-
if(event->y()<TITLE_HEIGHT)
-
{
-
last = event->globalPos();
-
}
-
}
-
/*
-
* 鼠标移动函数
-
* 这里实时修改窗口的坐标
-
*/
-
void MainWindow::mouseMoveEvent(QMouseEvent *event)
-
{
-
if(event->y()<TITLE_HEIGHT)
-
{
-
int dx = event->globalX() - last.x();
-
int dy = event->globalY() - last.y();
-
last = event->globalPos();
-
this->move(this->x()+dx,this->y()+dy);
-
}
-
}
-
/*
-
* 鼠标释放函数
-
*/
-
void MainWindow::mouseReleaseEvent(QMouseEvent *event)
-
{
-
if(event->y()<TITLE_HEIGHT)
-
{
-
int dx = event->globalX() - last.x();
-
int dy = event->globalY() - last.y();
-
this->move(this->x()+dx,this->y()+dy);
-
}
-
}
在Qt6中有部分变化,如下,当时,沿用Qt5中的代码除了警告是没有其他问题的。
-
static QPoint last(0,0); //保存坐标
-
const int TITLE_HEIGHT = 50; //这里也可以使用宏定义,保存标题高度,也就是鼠标点击区域的高度
-
void MainWindow::mousePressEvent(QMouseEvent *event)
-
{
-
if(event->position().y()<TITLE_HEIGHT)
-
{
-
last = event->globalPosition().toPoint();
-
}
-
}
-
-
void MainWindow::mouseMoveEvent(QMouseEvent *event)
-
{
-
if(event->position().y()<TITLE_HEIGHT)
-
{
-
int dx = event->globalPosition().x() - last.x();
-
int dy = event->globalPosition().y() - last.y();
-
last = event->globalPosition().toPoint();
-
this->move(this->x()+dx,this->y()+dy);
-
}
-
}
-
-
void MainWindow::mouseReleaseEvent(QMouseEvent *event)
-
{
-
if(event->position().y()<TITLE_HEIGHT)
-
{
-
int dx = event->globalPosition().x() - last.x();
-
int dy = event->globalPosition().y() - last.y();
-
this->move(this->x()+dx,this->y()+dy);
-
}
-
}
文章来源: dreamlife.blog.csdn.net,作者:DreamLife.,版权归原作者所有,如需转载,请联系作者。
原文链接:dreamlife.blog.csdn.net/article/details/113741759
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)