1、简介
在使用Qt开发软件时,通常会通过布局以及Qss美化界面,但窗体自带的标题栏不符合软件开发的需求,所以必须去掉Qt自带的标题栏,但去掉后就会失去窗体的之前的属性,比如自由拉伸以及可以拖拽标题栏等。
这个暗黑无边框窗体参考了github上开源的项目,如下是地址链接:
暗黑无边框窗体
2、添加暗黑无边框窗体
2.1、导入无边框窗体模块
首先是将如下文件复制到自己的项目中:
然后是在pro文件中添加无边框模块:
然后在framelesswindow文件夹下创建framelesswindow.pri的文件:
在framelesswindow.pri文件下添加如下语句:
接下来编译整个项目,但会提示出错,出错原因在于windowdragger.h的文件路径前面少写了frameless文件夹,如下所示:
2.2、导入暗黑样式表、画刷以及素材
如下是导入暗黑样式表:
如下是导入画刷:
最后导入素材:
2.3、设置无边框窗体以及暗黑皮肤
在main.cpp中进行设置无边框窗体以及暗黑皮肤,代码如下:
#include "mainwindow.h"
#include <QApplication>
#include"framelesswindow/framelesswindow.h"
#include"framelesswindow/windowdragger.h"
#include"DarkStyle.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//设置暗色系皮肤
QApplication::setStyle(new DarkStyle);
QApplication::setPalette(QApplication::style()->standardPalette());
//创建无边框界面窗口并将主窗口嵌入
FramelessWindow framelesswindow;
//设置窗体标题
framelesswindow.setWindowTitle("暗黑无边框窗体");
#if 0
//设置窗体图标(我这里没有添加图标素材)
framelesswindow.setWindowIcon("图标路径");
#endif
MainWindow *mainWindow=new MainWindow;
//设置无边框窗体内容
framelesswindow.setContent(mainWindow);
//显示无边框窗体
framelesswindow.show();
return a.exec();
}