Qt去掉窗口的标题栏和去掉标题栏后移动窗口
最近公司在做一个C++项目,功能做的差不多了,现在是界面方面修改,要想做出好看的界面,标题栏是个问题,所以我选择把标题栏去掉,去掉标题栏方法比较简单,就一行代码
this->setWindowFlags(Qt::FramelessWindowHint);
去掉以后又发现一个问题,就是不能移动窗口了,于是我就重写了三个鼠标事件,大致代码如下
.h文件的代码:
#include <QMouseEvent>
protected:
void mousePressEvent(QMouseEvent *e);
void mouseMoveEvent(QMouseEvent *e);
void mouseReleaseEvent(QMouseEvent *e);
http://www.bcwhy.com/thread-17852-1-1.html
private:
QPoint last;
.cpp文件的代码
//可以在构造函数中初始一下last变量用其成员函数setX,setY就是了
//接下来就是对三个鼠标事件的重写
void MainWindow::mousePressEvent(QMouseEvent *e)
{
last = e->globalPos();
}
void MainWindow::mouseMoveEvent(QMouseEvent *e)
{www.zzzyk.com
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了,去掉窗口标题栏后还能拖动窗体
补充:软件开发 , C++ ,