笔者未系统学过C++语法,仅有Java基础,具体写法仿照于大模型以及其它博客。自我感觉,如果会一门对象语言,没必要先刻意学C++,因为自己具有对象语言的基础,等需要用什么再学也不迟。毕竟不是专门学C++去搞算法。
1、话不多说,直接效果展示:
2、项目结构:
其中page1、page2、page3相关文件需要手动创建,创建办法如下:
修改为自己想要的名字:
一直默认点击到"完成"
3、更改创建的三个文件的.ui文件,如page1.ui。改成你想要的样子。在这里我只是在页面1加上了label。
4、修改widget.ui,并拖拽Tab Widget到页面内,然后删除所有页。
最后这个部分会变成白色。
这个Tab Widget的名称需要改成tabW1,因为后续编程需要用到。
5、修改widget.h这个头文件
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
// 导入三个文件的头文件
#include "page1.h"
#include "page2.h"
#include "page3.h"QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();page1 *ppage1 = NULL;page2 *ppage2 = NULL;page3 *ppage3 = NULL;private slots:void on_tabWidget_tabBarClicked(int index);private:Ui::Widget *ui;
};
#endif // WIDGET_H
主要是添加如图上面的部分,因为widget是需要展示的最大的盒子,而这几个page需要借助这个大盒子进行展示,因此就把这几个page全都先放进来。
6、修改widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include "page1.h"
#include "page2.h"
#include "page3.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);this->ppage1 = new page1; //实例化页面1this->ppage2 = new page2;this->ppage3 = new page3;ui->tabW1->insertTab(0,this->ppage1,"页1");ui->tabW1->insertTab(1,this->ppage2,"页2");ui->tabW1->insertTab(2,this->ppage3,"页3");}Widget::~Widget()
{delete ui;
}
之所以删除所有的页,是因为会在这里添加页,因此不需要页。