问题的来源是别人已经写好了一个项目需要界面美化,项目初期构建的时候没有考虑好,最底层的窗口是QMainWindow,由于QMainWindow含有QToolBar和QMenu,在自定义边框的时候无法使用通常的继承QWidget的方法。本文使用了在最底层再创建一个含有自定义边框QWidget来承载所以界面的方法。建议再构建项目的时候尽量使用QWidget继承的方法,后期自定义边框更方便简洁。
下图是自定义边框的效果图。
以下是代码说明:
首先是main函数,本代码的思路是再MainWindow的下面再放一个带自定义边框的QWidget,所以需要将main的入口改为无边框的QWidget,也就是自定义的类FrameLessWidget。
#include"FrameLessWidget.h"//1*********
#include <QtWidgets/QApplication>
//#include "QssMainWindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//********************************
//QssMainWindow w;
//w.show();
//*********************************
FrameLessWidget w;
w.show();
return a.exec();
}
进入Fra