QT-按下按钮实现页面跳转

本文介绍如何在QT应用中通过按钮操作实现页面的跳转。内容包括设计主界面、用户界面和管理员界面,以及各自界面的返回功能。用户通过下拉框选择角色并点击登录按钮,将跳转至对应界面。代码示例中详细注释了头文件、cpp源文件以及使用的组件。
摘要由CSDN通过智能技术生成

情景导入

        当我们在做应用时,一般都会遇到需要跳转页面的情况,按下一个按钮,跳转到对应的功能界面 ;或者需要进行角色选择,选择不同的角色,进入不同的界面。

今天就用QT简单实现一下上述内容

内容描述
(1)设计三个界面:主界面、用户界面、管理员界面

(2)主界面描述:一个下拉框,实现角色的选择,一个登录按钮,点击后跳转到对应的界面

(3)管理员界面:一个返回按钮,点击后返回主界面

(4)用户界面   :一个返回按钮,点击后返回主界面

效果图

(1)主界面

(2)选择角色 -->管理员,并登录

                  

(点击返回可返回主界面)

(3)选择角色 -->用户,并登录

      

(点击返回可返回主界面)

代码附录

代码中都写了详细注释

(1)代码树结构

(2)头文件

myapp.h

#ifndef MYAPP_H
#define MYAPP_H

#include &
Qt中,要实现按钮点击后跳转页面,可以使用QStackedWidget、QStackedLayout或QTabWidget来管理多个页面。下面是一个简单的示例: 1. 创建两个页面的QWidget子类,比如Page1和Page2。 ```cpp // page1.h #ifndef PAGE1_H #define PAGE1_H #include <QWidget> class Page1 : public QWidget { Q_OBJECT public: explicit Page1(QWidget *parent = nullptr); signals: void goToPage2(); private slots: void onButtonClicked(); }; #endif // PAGE1_H // page1.cpp #include "page1.h" #include <QPushButton> #include <QVBoxLayout> Page1::Page1(QWidget *parent) : QWidget(parent) { QPushButton *button = new QPushButton("Go to Page 2", this); connect(button, &QPushButton::clicked, this, &Page1::onButtonClicked); QVBoxLayout *layout = new QVBoxLayout(this); layout->addWidget(button); setLayout(layout); } void Page1::onButtonClicked() { emit goToPage2(); } ``` ```cpp // page2.h #ifndef PAGE2_H #define PAGE2_H #include <QWidget> class Page2 : public QWidget { Q_OBJECT public: explicit Page2(QWidget *parent = nullptr); signals: void goToPage1(); private slots: void onButtonClicked(); }; #endif // PAGE2_H // page2.cpp #include "page2.h" #include <QPushButton> #include <QVBoxLayout> Page2::Page2(QWidget *parent) : QWidget(parent) { QPushButton *button = new QPushButton("Go back to Page 1", this); connect(button, &QPushButton::clicked, this, &Page2::onButtonClicked); QVBoxLayout *layout = new QVBoxLayout(this); layout->addWidget(button); setLayout(layout); } void Page2::onButtonClicked() { emit goToPage1(); } ``` 2. 创建一个主窗口的QWidget子类,比如MainWindow,使用QStackedWidget作为主要的页面管理器。 ```cpp // mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QStackedWidget> class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private slots: void goToPage2(); void goToPage1(); private: QStackedWidget *stackedWidget; }; #endif // MAINWINDOW_H // mainwindow.cpp #include "mainwindow.h" #include "page1.h" #include "page2.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { stackedWidget = new QStackedWidget(this); setCentralWidget(stackedWidget); Page1 *page1 = new Page1(this); Page2 *page2 = new Page2(this); stackedWidget->addWidget(page1); stackedWidget->addWidget(page2); connect(page1, &Page1::goToPage2, this, &MainWindow::goToPage2); connect(page2, &Page2::goToPage1, this, &MainWindow::goToPage1); } MainWindow::~MainWindow() { } void MainWindow::goToPage2() { stackedWidget->setCurrentIndex(1); // 切换到页面2 } void MainWindow::goToPage1() { stackedWidget->setCurrentIndex(0); // 切换到页面1 } ``` 3. 在main函数中创建并显示MainWindow。 ```cpp #include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); } ``` 以上代码演示了如何通过点击按钮在两个页面间跳转。Page1和Page2作为两个不同的QWidget子类,通过信号和槽机制实现按钮点击后的页面切换。MainWindow则使用QStackedWidget作为中央部件,将Page1和Page2添加进去,并连接按钮点击信号和页面切换槽函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值