QT之多界面交換
環(huán)境:VS2019+QT_tools
從網(wǎng)上查看了許多大神的帖子,先將多界面切換的方法總結(jié)如下:
1.可以通過QT Designer中添加Containers控件里的Stacked Widget實(shí)現(xiàn)同一個(gè)UI里的頁面切換,可以通過鼠標(biāo)右鍵或者代碼實(shí)現(xiàn)增減頁操作
2.可以通過建立多個(gè)UI文件,然后設(shè)置選擇其中一個(gè)顯示,其他隱藏實(shí)現(xiàn)不同UI界面的切換,這種方法csdn上帖子很多,在此就不贅述。
3.還有一一種方法就是將以上兩種方法結(jié)合起來,同時(shí)在主窗口插入Stacked Widget,以及建立多個(gè)UI文件,再將UI文件作為空間添加到主窗口的Stacked Widget中,實(shí)現(xiàn)同一個(gè)窗口中的界面切換,這種方法好處是可以實(shí)現(xiàn)不同UI編輯的同時(shí)不會(huì)過于混亂,效率較高。
1.主窗口插入Stacked Widget
VS中找到你的主窗口Ui文件,雙擊打開進(jìn)入Designer
完成后選擇上方的窗體->查看代碼->保存->關(guān)閉
//調(diào)用舉例如下:
ui.stackedWidget->addWidget(A);
ui.stackedWidget->addWidget(B);
2.創(chuàng)新多個(gè)Ui文件
右鍵項(xiàng)目,添加新建項(xiàng)
Ui屬性選擇QWidget
創(chuàng)建成功后解決方案中會(huì)多出3個(gè)文件:.cpp、 .h、 .ui
3.多界面切換
主窗口.h
#pragma once
#include <QtWidgets/QMainWindow>
#include"calibration.h"//建立的兩個(gè)新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文章來源:http://www.zghlxwxcb.cn/news/detail-513460.html
#include "Cameraparameter.h"
Cameraparameter::Cameraparameter(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
//申請(qǐng)兩個(gè)新界面
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);
}
效果展示:文章來源地址http://www.zghlxwxcb.cn/news/detail-513460.html
到了這里,關(guān)于QT之一個(gè)UI里邊多界面切換的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!