在我们设计自定义QT界面时,一般会取消界面最上面的拖动控件,为此我们需要新的界面添加鼠标拖动事件。
(1).在.h文件的类中声明函数
void mousePressEvent(QMouseEvent* event);
void mouseMoveEvent(QMouseEvent* event);
QPoint last_mouse_position_;
(2).在.cpp文件中添加头文件
#include <QMouseEvent>
(3).在.cpp文件中补充函数内容
void MainWindow::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
last_mouse_position_ = event->globalPos();
}
void MainWindow::mouseMoveEvent(QMouseEvent *event)
{
if (!event->buttons().testFlag(Qt::LeftButton))
return;
const QPoint position = pos() + event->globalPos()-last_mouse_position_;
move(position.x(), position.y());
last_mouse_position_ = event->globalPos();
}