Qt在不使用双ui界面的情况下实现界面的跳转

作为QT Creator的初学者,在设置ui界面时总是会遇到一些有设计想法但不知道具体流程的情况,初学者最基础的就是只做一个界面,所有的按键都排布在一个ui界面下,若界面实现的功能多,那按键就一定会混杂,或者实现的功能需要一个整页的文本框,这样就限制了程序的编写与设计,这样,在网上可以查询到如何设置两个ui界面,但我今天所写的是利用第二种方法实现:Stacked Widget

QT中具体实现步骤

这里把具体的创建工程等步骤给省略掉,直接进入重点(笔者使用的是最普通的QWidget)
QT Creator中Stacked Widget实现多界面的跳转

向主窗体中拖拽一个Stacked Widget部件,默认是两个页面,需要多页面时可以右键->插入页。
使用Stacked Widget部件拖拽大小,将整个主窗覆盖,之后向几个页面中添加几个需要的按键。如下图:
QT Creator中Stacked Widget实现多界面的跳转
/*******************************************************************************/
QT Creator中Stacked Widget实现多界面的跳转
这里笔者选用两个页面,分别在界面上放置一个按键,并在第一个界面上添加了一个文本框(不重要,只是为了好区分),这样ui界面就搭建好了;

代码展示

此处是.cpp文件

#include "app.h"
#include "ui_app.h"

app::app(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::app)
{
    ui->setupUi(this);
    connect(ui->pushButton,&QPushButton::clicked,this,&app::switchPage);
    connect(ui->pushButton_2,&QPushButton::clicked,this,&app::switchPage);
}
app::~app()
{
    delete ui;
}
void app::switchPage(){
    QPushButton *button = qobject_cast<QPushButton*>(sender());//得到按下的按钮的指针
    if(button==ui->pushButton)
        ui->stackedWidget->setCurrentIndex(0);
    if(button==ui->pushButton_2)
        ui->stackedWidget->setCurrentIndex(1);

}

此处是.h文件

#ifndef APP_H
#define APP_H

#include <QWidget>

namespace Ui {
class app;
}

class app : public QWidget
{
    Q_OBJECT

public:
    explicit app(QWidget *parent = 0);
    ~app();
    void switchPage();

private:
    Ui::app *ui;
};

#endif // APP_H

点击运行后,点击前进就跳转到第二页,点击后退就回到第一页;

以上就是全部的代码,虽然简单,但是实用,此部件可自己灵活使用。效果也是五花八门。

相关文章:

  • 2022-12-23
  • 2021-09-24
  • 2021-10-09
  • 2021-05-09
  • 2022-12-23
  • 2022-01-19
  • 2021-08-08
猜你喜欢
  • 2021-07-19
  • 2022-12-23
  • 2021-06-10
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案