失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > QT 单个窗口实现多页面切换

QT 单个窗口实现多页面切换

时间:2021-09-11 01:56:41

相关推荐

QT 单个窗口实现多页面切换

简述

Qt开发中经常遇到需要点按不同的按钮,然后在同一位置显示不同的内容。例如在下图中实现:按下页面1上方显示这是页面一

利用QStackwidget实现

可以采用代码的方式,也可以采用Qt设计师的方式,本文采用Qt设计师进行实现。

在窗口拖入container中的Stacked Widget,默认是两个页面,需要多页面时可以右键->插入页。

代码:

//mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>class QStackedWidget;namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();void switchPage();//切换函数private:Ui::MainWindow *ui;};#endif // MAINWINDOW_H

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(1);//根据按下的button按索引显示相应的页面else if(button==ui->bButton)ui->stack->setCurrentIndex(2);else if(button==ui->cButton)ui->stack->setCurrentIndex(3);}

如果觉得《QT 单个窗口实现多页面切换》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。