今天我们快速建立一个Qt工程,然后复刻主界面
工程配置:基类选择QMainWindow,其余默认。
主界面
网易云
打开参考工程的allmain.ui
文件
然后打开我们的主界面ui,调整合适大小。主界面宽高设为1024*640
默认主界面会有菜单栏、状态栏、工具栏,将它们删掉就好了
ok,接下来就是参照模板一比一复刻了
主界面复刻
主界面分为四个部分,分别是
- srollArea–QSrollArea
- tabWidget–QTabWidget
- titleWidget–QWidget
- widget_tail–QWidget
QWidget
QWidget类是所有用户接口对象的基类。
QWidget是用户界面的原子:它从窗口系统接收鼠标、键盘和其他事件,并在屏幕上绘制自身的表示形式。每个小部件都是矩形的,它们按 Z-order排序。小部件由其父构件及其前面的小部件剪裁。
没有被嵌入在父组件中的组件称为窗口。
通常,窗口具有框架和标题栏,但也可以使用合适的 window flag 创建没有此类装饰的窗口
在Qt中,QMainWindow和QDialog的各个子类是最常见的窗口类型
QTabWidget
QTabWidget 类提供了选项卡式小部件
QSrollArea
QScrollArea 类提供对另一个小部件的滚动视图
滚动区域用于显示框架内子组件的内容。如果组件超过框架的大小,视图可以提供滚动条,以便可以查看整个子组件的内容
主界面菜单栏
首先,我们复刻菜单栏
直接copyallmain.ui
中的title_widget
到我们的工程中,宽与主界面一样 1024,高暂且设为60。运行一下
qt默认界面边框yysy太丑了,后面我们会把它去掉,然后根据我们的需要自定义。
背景颜色
接下来开始上色,qt可以使用qss文件来美化界面
我们的工程中,添加新文件,选择Qt Resource File,命名为mainwindow.qss。
参照模板文件AllMain.qss
/*背景颜色*/
QWidget#title_Widget
{
background-color:rgb(236,65,65);
}
然后,加载该文件。新建一个头文件命名为loadFileQss.h
#ifndef LOADFILEQSS_H
#define LOADFILEQSS_H
#include <QApplication>
#include <QFile>
class LoadFileQss
{
public:
static void setStyle(const QString& fileName)
{
QFile fileQss(fileName);
fileQss.open(QFile::ReadOnly);
qApp->setStyleSheet(fileQss.readAll());
fileQss.close();
}
};
#endif // LOADFILEQSS_H
打开文件mainwindow.cpp
。添加代码
#include "mainwindow.h"
#include "loadfileqss.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
LoadFileQss::setStyle("./mainwindow.qss"); //加载qss 样式表,用静态方式
MainWindow w;
w.show();
return a.exec();
}
注意:mainwindow.qss文件路径一定要写对。如果使用相对路径,mainwindow.qss文件是相对于生成可执行文件
运行,看看效果
Logo、图标
ok,下面添加 Logo和图标。
将模板工程的文件夹images复制到我们工程目录下,然后新建资源文件,命名为res.qrc
。参照模板工程添加images下的图片资源
mainwindow.qss
QWidget#centralWidget
{
background-color:rgb(255,</