您现在的位置是:首页 > 技术文章网站首页技术文章

[Qt]StackWidget一个按钮切一个页面

  • WangYe
  • 2020-11-14 21:50:22
  • 75 次阅读
Qt利用StackWidget实现页面切换

dialog.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QDialog>
#include "formcomm.h"
#include "formscripts.h"


namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();

private slots:
    void on_pushButton_clicked();   //切换页面一

    void on_pushButton_2_clicked(); //切换页面二

private:
    Ui::Dialog *ui;

    FormComm *FormComm_Page;    //创建页面指针一
    FormScripts *FormScripts_Page;  //创建页面指针二
};

#endif // MAINWINDOW_H

dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);

    FormComm_Page = new FormComm(this);//实例化窗口页面
    FormScripts_Page = new FormScripts(this);

    ui->stackedWidget->addWidget(FormComm_Page);    //添加页面一
    ui->stackedWidget->addWidget(FormScripts_Page); //添加页面二
    ui->stackedWidget->setCurrentWidget(FormComm_Page); //设置显示主页
}

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

void Dialog::on_pushButton_clicked()    //切换页面一
{
    ui->stackedWidget->setCurrentWidget(FormComm_Page);
}

void Dialog::on_pushButton_2_clicked()  //切换页面二
{
    ui->stackedWidget->setCurrentWidget(FormScripts_Page);
}

FormComm.h

#ifndef FORMCOMM_H
#define FORMCOMM_H

#include <QFrame>

namespace Ui {
class FormComm;
}

class FormComm : public QFrame
{
    Q_OBJECT

public:
    explicit FormComm(QWidget *parent = nullptr);
    ~FormComm();

private:
    Ui::FormComm *ui;
};

#endif // FORMCOMM_H

FormComm.cpp

#include "formcomm.h"
#include "ui_formcomm.h"

FormComm::FormComm(QWidget *parent) :
    QFrame(parent),
    ui(new Ui::FormComm)
{
    ui->setupUi(this);
}

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

FormScripts.h

#ifndef FORMSCRIPTS_H
#define FORMSCRIPTS_H

#include <QFrame>

namespace Ui {
class FormScripts;
}

class FormScripts : public QFrame
{
    Q_OBJECT

public:
    explicit FormScripts(QWidget *parent = nullptr);
    ~FormScripts();

private:
    Ui::FormScripts *ui;
};

#endif // FORMSCRIPTS_H

FormScripts.cpp

#include "formscripts.h"
#include "ui_formscripts.h"

FormScripts::FormScripts(QWidget *parent) :
    QFrame(parent),
    ui(new Ui::FormScripts)
{
    ui->setupUi(this);
}

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

main.cpp

#include "dialog.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Dialog w;
    w.show();
    return a.exec();
}


dialog.ui

图片.png


FormComm.ui

图片.png


FormScripts.ui

图片.png

文章评论 (0)



Top