QTメインページ(スタックウィジェット)でページを作成する方法

1. UIインターフェイスの設計ページングウィンドウとして
コントロールのUIインターフェイスにドラッグしStacked Widgetます。つまり、このウィンドウで複数ページの切り替えを点滅させることができます。
ここに画像の説明を挿入
次に、一連のボタンコントロールを作成して、切り替えインターフェイスを制御します。
Stacked Widget左上隅の三角形でインターフェイスを前後に切り替えることができます。デフォルトでは2つのページがあります。
コントロールを右クリックすると、ページを挿入するオプションが表示されます。
ここに画像の説明を挿入
デモプログラムの場合:Stacked Widgetデザイン3ページが表示され、各ページに1行の単語が表示され、3つのボタンコントロールがデザインされます。

ここに画像の説明を挿入

2.コード部分
mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

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


    void switchPage();//切换界面

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
	// 创建信号槽,建立按钮与页面切换自定义函数的连接
    connect(ui->aButton,&QPushButton::clicked,this,&MainWindow::switchPage);
    connect(ui->bButton,&QPushButton::clicked,this,&MainWindow::switchPage);
    connect(ui->cButton,&QPushButton::clicked,this,&MainWindow::switchPage);
}

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


void MainWindow::switchPage(){
	//获取按下的按钮的指针
    QPushButton *button = qobject_cast<QPushButton*>(sender());
    if(button==ui->aButton)
        ui->stack->setCurrentIndex(0);//根据按下的button按索引显示相应的页面
    else if(button==ui->bButton)
        ui->stack->setCurrentIndex(1);
    else if(button==ui->cButton)
        ui->stack->setCurrentIndex(2);

}

おすすめ

転載: blog.csdn.net/sazass/article/details/113106831