1、创建一个新GUI项目;
2、进行窗口布局设计;
3、设计样式表,进行窗体个性化设计;
4、效果图;
5、窗口移动代码设置。
源代码:
Demo::Demo(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
this->setWindowFlags(Qt::FramelessWindowHint);//去除窗口边框
this->setFixedSize(1360, 840);//固定窗口大小
}
void Demo::mousePressEvent(QMouseEvent *e)
{
int titleHeight = ui.title_frame->height();
if (e->y() < titleHeight)
{
last = e->globalPos(); //获取到按压的位置
}
}
void Demo::mouseReleaseEvent(QMouseEvent *e)
{
int titleHeight = ui.title_frame->height();
if (e->y() < titleHeight)
{
int dx = e->globalX() - last.x();
int dy = e->globalY() - last.y();
this->move(this->x() + dx, this->y() + dy);
}
}
void Demo::mouseMoveEvent(QMouseEvent *e)
{
int titleHeight = ui.title_frame->height();
if (e->y() < titleHeight)
{
int dx = e->globalX() - last.x();
int dy = e->globalY() - last.y();
last = e->globalPos();
this->move(this->x() + dx, this->y() + dy);
}
}
void Demo::paintEvent(QPaintEvent *e)
{
QPainter painter_mainback(this);
painter_mainback.drawPixmap(0, 0, this->width(), this->height(), QPixmap(":/Demo/Resources/icon/Close.png"));
ui.pushButton_people->setMask(QRegion(0, 0, 28, 28, QRegion::Ellipse));
}