(1)pro文件中加入
QT += gui
(2)h文件的类中加入头文件:
#include <QMouseEvent>
类中加入函数和变量声明:
protected:
void mouseMoveEvent(QMouseEvent* event);
void mousePressEvent(QMouseEvent* event);
void mouseReleaseEvent(QMouseEvent* event);
private:
QPoint mLastMousePosition;
bool mMoving;
(3)cpp文件中加入鼠标事件相关函数的定义
void MainWindow::mousePressEvent(QMouseEvent* event)
{
if(event->button() == Qt::LeftButton)
{
mMoving = true;
mLastMousePosition = event->globalPos();
}
}
void MainWindow::mouseMoveEvent(QMouseEvent* event)
{
if( event->buttons().testFlag(Qt::LeftButton) && mMoving)
{
this->move(this->pos() + (event->globalPos() - mLastMousePosition));
mLastMousePosition = event->globalPos();
}
}
void MainWindow::mouseReleaseEvent(QMouseEvent* event)
{
if(event->button() == Qt::LeftButton)
{
mMoving = false;
}
}
转载自https://blog.youkuaiyun.com/qq_28093585/article/details/78483019
本文详细介绍如何在Qt中通过重写鼠标事件实现窗口的拖动功能。具体步骤包括在pro文件中添加gui模块,h文件中引入QMouseEvent并声明鼠标事件函数,在cpp文件中定义这些函数以响应鼠标按下、移动和释放事件。
567

被折叠的 条评论
为什么被折叠?



