Qt使用记录——去掉标题栏,窗口可移动
转载来自:https://www.2cto.com/kf/201302/191602.html
在用QT编写界面时,去掉标题栏方法比较简单,就一行代码
this->setWindowFlags(Qt::FramelessWindowHint);
去掉以后又发现一个问题,就是不能移动窗口了,于是我就重写了三个鼠标事件,大致代码如下
.h文件的代码:
#include <QMouseEvent> protected: void mousePressEvent(QMouseEvent *e); void mouseMoveEvent(QMouseEvent *e); void mouseReleaseEvent(QMouseEvent *e); private: QPoint last;
.cpp文件的代码
//可以在构造函数中初始一下last变量用其成员函数setX,setY就是了 //接下来就是对三个鼠标事件的重写 void MainWindow::mousePressEvent(QMouseEvent *e) { last = e->globalPos(); } void MainWindow::mouseMoveEvent(QMouseEvent *e) { int dx = e->globalX() - last.x(); int dy = e->globalY() - last.y(); last = e->globalPos(); move(x()+dx, y()+dy); } void MainWindow::mouseReleaseEvent(QMouseEvent *e) { int dx = e->globalX() - last.x(); int dy = e->globalY() - last.y(); move(x()+dx, y()+dy); }
复制过去用的时候记得把类名改掉哦~
这样就OK了,去掉窗口标题栏后还能拖动窗体