QT之一个UI里边多界面切换

本文介绍了在VS2019+QT_tools环境下,如何使用三种方法实现QT界面的多界面切换。包括通过StackedWidget控件、创建多个UI文件以及两者结合的方式,详细阐述了添加和切换界面的步骤,并提供了代码示例。通过这种方式,可以在同一窗口中方便地切换不同功能的界面,提高开发效率。

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

QT之多界面交换

环境:VS2019+QT_tools

从网上查看了许多大神的帖子,先将多界面切换的方法总结如下:
1.可以通过QT Designer中添加Containers控件里的Stacked Widget实现同一个UI里的页面切换,可以通过鼠标右键或者代码实现增减页操作
2.可以通过建立多个UI文件,然后设置选择其中一个显示,其他隐藏实现不同UI界面的切换,这种方法csdn上帖子很多,在此就不赘述。
3.还有一一种方法就是将以上两种方法结合起来,同时在主窗口插入Stacked Widget,以及建立多个UI文件,再将UI文件作为空间添加到主窗口的Stacked Widget中,实现同一个窗口中的界面切换,这种方法好处是可以实现不同UI编辑的同时不会过于混乱,效率较高。

1.主窗口插入Stacked Widget

VS中找到你的主窗口Ui文件,双击打开进入Designer
在这里插入图片描述

完成后选择上方的窗体->查看代码->保存->关闭

//调用举例如下:
 ui.stackedWidget->addWidget(A);
 ui.stackedWidget->addWidget(B);

2.创新多个Ui文件

右键项目,添加新建项
在这里插入图片描述
Ui属性选择QWidget
在这里插入图片描述

创建成功后解决方案中会多出3个文件:.cpp、 .h、 .ui

3.多界面切换

主窗口.h

#pragma once

#include <QtWidgets/QMainWindow>
#include"calibration.h"//建立的两个新UI
#include"camerror.h"
#include "ui_Cameraparameter.h"

class Cameraparameter : public QMainWindow
{
    Q_OBJECT

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

private:
    Ui::CameraparameterClass ui;
    calibration* ui_cal;
    camerror* ui_error;


private slots:
    void on_pushButton_clicked();
    void on_pushButton_2_clicked();
};

主窗口.cpp

#include "Cameraparameter.h"

Cameraparameter::Cameraparameter(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);

    //申请两个新界面
    ui_cal = new calibration;
    ui_error = new camerror;

    //将界面添加到stackedWidget控件
    ui.stackedWidget->addWidget(ui_cal);
    ui.stackedWidget->addWidget(ui_error);

}

Cameraparameter::~Cameraparameter()
{}

void Cameraparameter::on_pushButton_clicked()
{
    ui.stackedWidget->setCurrentIndex(2);
}
void Cameraparameter::on_pushButton_2_clicked()
{
    ui.stackedWidget->setCurrentIndex(3);
}

效果展示:
在这里插入图片描述

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明月醉窗台

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值