QT之一个UI里边多界面切换
2023-09-14 09:14:39 时间
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);
}
效果展示:
相关文章
- QT-Qt组件QTimer使用方法
- QT-在Qt Widgets Application中怎么显示printf的输出内容?
- s3c2410上搭建QT/Embedded4.8.5开发环境(四)--安装intel-x86 X11平台qt库qt-everywhere-opensource-src-4.8.5
- Qt编写物联网管理平台31-用户权限管理
- 关于Qt高分屏缩放几个知识点
- Qt 将界面程序封装成动态库DLL
- Qt QMap简单用法
- Qt 关于QT_BEGIN_NAMESPACE宏的作用
- Qt自定义可编辑模型
- Qt添加菜单和工具栏等的动作
- Qt开发-QT Widgets
- Qt QImag图像保存、格式转换
- 【Qt】在ubuntu上为可执行程序qt创建图标(亲测)
- 【Qt】解决 “ubuntu 中的 qt 编辑器光标变成小黑块”
- class Ui MainWindow has no member named actionnew ui actionnew ssetIcon的错误解决方案
- ubuntu下qt运行报错 /usr/bin/ld: cannot find -lGL
- X11,GTK,QT,GNOME的区别与联系(UI工具总结)
- Qt开发,报错:error: C3861: “tr”: 找不到标识符
- Qt学习一门:直接使用QT具
- Qt Creator 快捷键
- VS+Qt — Vistual Studio 2022+Qt6安装教程以及解决Qt Vistual Studio Tools下载慢和VS无法打开.ui进行设计的问题
- 【Qt】通过继承ui界面类的方式加载.ui转化的.h头文件显示窗体
- Qt编写控件属性设计器12-用户属性