QTabWidget添加其它Wdiget的2個函數如下:
QTabWidget的介紹可參考官網QTabWidget Class | Qt Widgets | Qt 6.9.1
直接上代碼,代碼如下:
#include <QMainWindow>#include <QApplication>
#include <QVBoxLayout>
#include <QPushButton>
#include <QLineEdit>
#include <QScreen>int nWidth = 800;
int nHeight = 600;// 移動窗口到屏幕中央
void MoveCenter(QMainWindow& w){// 獲取屏幕信息QScreen *screen = QGuiApplication::primaryScreen();QRect screenGeometry = screen->geometry();int screenWidth = screenGeometry.width();int screenHeight = screenGeometry.height();// 計算窗口居中位置int x = (screenWidth - nWidth) / 2;int y = (screenHeight - nHeight) / 2;w.move(x, y);
}int main(int argc, char *argv[])
{QApplication a(argc, argv);QMainWindow w;w.setGeometry(0,0,nWidth,nHeight);MoveCenter(w);// 設置中央控件QTabWidget *centralWidget = new QTabWidget(&w);w.setCentralWidget(centralWidget);//////////////////// widget1 //////////////////////////////QWidget *widget1 = new QWidget();QVBoxLayout *mainlayout1 = new QVBoxLayout(widget1);// 子水平布局(用于 Button 1 和 Button 2 水平排列)QHBoxLayout *buttonLayout1 = new QHBoxLayout();buttonLayout1->addWidget(new QPushButton("Button 1"));buttonLayout1->addWidget(new QPushButton("Button 2"));// 添加按鈕布局到主布局mainlayout1->addLayout(buttonLayout1); //index =0// 設置拉伸因子,使 QLineEdit 占據剩余空間QLineEdit *lineEdit = new QLineEdit();lineEdit->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);mainlayout1->addWidget(lineEdit); //index =1mainlayout1->setStretch(0, 0); // 按鈕布局不拉伸mainlayout1->setStretch(1, 1); // QLineEdit 拉伸填充剩余空間//////////////////// widget2 //////////////////////////////QWidget *widget2 = new QWidget();// 主垂直布局(用于上下排列按鈕和輸入框)QVBoxLayout *mainlayout2 = new QVBoxLayout(widget2);// 子水平布局(用于 Button 1 和 Button 2 水平排列)QHBoxLayout *buttonLayout2 = new QHBoxLayout();buttonLayout2->addWidget(new QPushButton("Button 1"));buttonLayout2->addWidget(new QPushButton("Button 2"));// 添加按鈕布局到主布局mainlayout2->addLayout(buttonLayout2);// 添加 QLineEdit 到主布局(默認在按鈕下方)QLineEdit *lineEdit2 = new QLineEdit();mainlayout2->addWidget(lineEdit2);//使用彈簧填充剩余距離mainlayout2->addItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding));//////////////////////// 添加tabWdiget ///////////////centralWidget->addTab(widget1,"1");centralWidget->addTab(widget2,"2");w.show();return a.exec();
}
上面的代碼運行結果如下:
網上其它的資料可參考:QT界面:tabWidget選項卡使用小結_qt怎么將ui界面放入到tabwidget-CSDN博客
QTabWidget——創建標簽頁的多頁面切換_qt tabwidget 標簽切換 信號-CSDN博客
附加:
1、QDataStream 類實現了 C++ 基本數據類型的序列化,可參考官網
QDataStream Class | Qt Core | Qt 6.9.1
2、Qt 庫提供了一組基于模板的通用容器類。這些類可用于存儲指定類型的項目。可參考官網
Container Classes | Qt Core | Qt 6.9.1