qt 无标题窗口拖动
以前没用过这样拖动界面窗口,工作中需要做一个qt项目,然后就从网络上查找方法来实现。
本文主要参考自http://blog.csdn.net/hiwubihe/article/details/51712754
主要的实现流程是:
界面类继承QWidget 并重写其中的三个方法:
void mousePressEvent(QMouseEvent *event)//鼠标点击事件
void mouseMoveEvent(QMouseEvent *event)//鼠标移动事件
void mouseReleaseEvent(QMouseEvent *event)//鼠标放开事件
且,在类中定义两个属性:
bool isPress //true 鼠标按下 false 放开
QPoint point //记录鼠标和窗口的位置
实现代码:
void MainWidget::mousePressEvent(QMouseEvent *event) { if(event->button()==Qt::LeftButton){ qDebug() << "press left button"; this->isPress=true; this->point=event->globalPos()-this->pos(); } } void MainWidget::mouseMoveEvent(QMouseEvent *event) { if(event->buttons() & Qt::LeftButton){ if(this->isPress==true){ move(event->globalPos()-point); point=event->globalPos()-this->pos(); } } } void MainWidget::mouseReleaseEvent(QMouseEvent *event) { this->isPress=false; }
(qt 包下载:http://download.qt-project.org/archive/qt/
http://download.qt-project.org/official_releases/qtcreator/)
浙公网安备 33010602011771号