QtTabWidget(代码)

本文详细介绍了如何在C++中使用Qt库创建一个带有多个页面的窗口,每个页面包含一个QLabel。展示了MainWindow类的结构和页面功能的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

maindow.cpp

#include "mainwindow.h"
#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->setMaximumSize(800,600);
    this->setMinimumSize(800, 600);

    tabWidget = new QTabWidget();
    page1 = new QWidget();
    page2 = new QWidget();
    page3 = new QWidget();

    tabWidget->addTab(page1,"页面1");
    tabWidget->addTab(page2,"页面2");
    tabWidget->addTab(page3,"页面3");

    tabLayout = new QVBoxLayout();
    tabLayout->addWidget(tabWidget);

    ui->centralwidget->setLayout(tabLayout);

    // 各个页面的ui
    page1Fun();
    page2Fun();
    page3Fun();
}

MainWindow::~MainWindow()
{
    delete ui;
}

// 页面1
void MainWindow::page1Fun() {

    page1Label = new QLabel("this is page1!");

    page1Layout = new QVBoxLayout(page1);
    page1Layout->addWidget(page1Label);

}

// 页面2
void MainWindow::page2Fun() {

    page2Label = new QLabel("this is page2!");

    page2Layout = new QVBoxLayout(page2);
    page2Layout->addWidget(page2Label);
}

// 页面3
void MainWindow::page3Fun() {

    page3Label = new QLabel("this is page3!");

    page3Layout = new QVBoxLayout(page3);
    page3Layout->addWidget(page3Label);
}

maindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QApplication>
#include <QMainWindow>
#include <QTabWidget>         
#include <QWidget> 
#include <QVBoxLayout>
#include <QLabel>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

    QTabWidget      *tabWidget;
    QWidget         *page1;
    QWidget         *page2;
    QWidget         *page3;

    QLabel          *page1Label;
    QLabel          *page2Label;
    QLabel          *page3Label;

    QVBoxLayout     *tabLayout;
    QVBoxLayout     *page1Layout;
    QVBoxLayout     *page2Layout;
    QVBoxLayout     *page3Layout;

    void page1Fun();
    void page2Fun();
    void page3Fun();
};
#endif

运行效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值