Qt中实现页面切换的两种方式

方式一 :使用QStackedWidget

讲解

在Qt中,可以使用QStackedWidget来实现两个UI界面的互相转换。QStackedWidget是一个堆叠窗口小部件,可以在其中添加多个子窗口,并且只显示其中一个子窗口。


注意:QStackedWidget只能用来装widget,不能装mainwindow!!

注意:
上面这种想法是错的!
下面这种想法才是对的!

注意:QStackedWidget既可以能用来装widget,也可以装mainwindow!!!(想必QDialog也可以)


项目名:PageSwitching1
使用QStackedWidget这种方法,其实就是先创建一个QWidget作为”容器“,然后再创建一个QStackedWidget部件作为这个QWidget的唯一部件,
然后再将不同的ui页面放入到QStackedWidget中即可!

注意:

  • 1.如果你想在main.cpp中创建其他ui页面实力(比如:MainWindow mainw;),就需要加上他的头文件,如:
    #include “mainwindow.h”;
  • 2.如果你想在main.cpp中,通过ui变量访问这个ui界面上的某个部件,你还需要加上他的ui头文件,如:
    #include “ui_mainwindow.h”
    并且,你还要让他的ui变量公开,如:
public:
    Ui::MainWindow *ui;

代码结构

在这里插入图片描述
说明:项目名为1111111111是随便取的,
然后,只有main.cpp是存放了自己写的代码,其他都是编译器自动生成。
然后,在mainwindow.h文件中,将Ui::MainWindow *ui;设置为了pubilc。
widget.ui是空白的。
mainwindow.ui如下所示:(最主要其实就是加了一个button,用来跳转到其他页面,那个日历没什么作用)
在这里插入图片描述

main.cpp完整代码

#include "mainwindow.h"
#include "ui_mainwindow.h"//两两一组,mainwindow.h与ui_mainwindow.h缺一不可!

#include <QApplication>
#include <QLabel>
#include <QPushButton>
#include <QStackedWidget>
#include <QVBoxLayout>

int main(int argc, char *argv[])
{
   
    QApplication a(argc, argv);

    // 创建主窗口
    QWidget mainWindow;
    mainWindow.setWindowTitle("PageSwitching1");
    mainWindow.setFixedSize(600,400);

    // 创建堆叠窗口
    QStackedWidget stackedWidget(&mainWindow);

    // 创建第一个UI界面
    QWidget uiPage1;
    QVBoxLayout layout1(&uiPage1);
    QLabel label1("Page 1");
    QPushButton button1("Go to Page 2");
    layout1.addWidget(&label1);
    layout1.addWidget(&button1);

    // 创建第二个UI界面
    QWidget uiPage2;
    QVBoxLayout layout2(&uiPage2);
    QLabel label2
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 在Qt实现两个页面之间的切换可以使用QStackedWidget控件和信号与槽机制。 首先,在Qt Designer创建两个页面的界面,在QWidget或QDialog上进行设计。然后,将这两个页面界面放置在QStackedWidget控件,将其设置为主窗口的心布局。 接下来,在代码定义一个QStackedWidget对象,并在主窗口的构造函数初始化它。将两个页面添加到QStackedWidget控件,可以使用addWidget()函数。 然后,通过添加按钮或其他交互元素,在主窗口创建一个信号槽连接。在槽函数,使用setCurrentIndex()函数设置QStackedWidget当前显示的页面的索引值。 当触发按钮或交互元素的点击事件时,发送一个信号,将其与槽函数连接。在槽函数,通过setCurrentIndex()函数将QStackedWidget显示的页面切换到需要显示的页面。 总结起来,通过使用QStackedWidget控件和信号与槽机制,可以实现两个页面之间的切换。 ### 回答2: 要在Qt实现两个页面的来回切换,可以使用QStackedWidget控件。QStackedWidget是一个堆叠的小部件,可以在其上添加多个页面,并且只显示其一个页面。 首先,需要创建两个QWidget页面,例如Page1和Page2。 ```c++ // 创建页面1 QWidget *page1 = new QWidget; // 创建页面2 QWidget *page2 = new QWidget; ``` 然后,将创建的页面添加到QStackedWidget。 ```c++ QStackedWidget *stackedWidget = new QStackedWidget; stackedWidget->addWidget(page1); stackedWidget->addWidget(page2); ``` 要在页面之间进行切换,可以使用setCurrentIndex函数,通过设置页面的索引来显示不同的页面。索引从0开始,表示第一个页面。 ```c++ // 显示页面2 stackedWidget->setCurrentIndex(1); ``` 为了实现来回切换页面,可以在需要的地方调用setCurrentIndex函数来切换页面。例如,可以在按钮的点击事件切换页面。 ```c++ connect(button1, &QPushButton::clicked, [=](){ // 切换页面2 stackedWidget->setCurrentIndex(1); }); connect(button2, &QPushButton::clicked, [=](){ // 切换页面1 stackedWidget->setCurrentIndex(0); }); ``` 通过这样的方式,就可以在Qt实现两个页面的来回切换了。其,QStackedWidget控件可以方便地管理多个页面,并在需要时进行切换显示。 ### 回答3: 在Qt实现两个页面的来回切换可以使用以下方法: 1. 使用堆栈管理页面:创建一个QStackedWidget的实例来管理页面,将要切换页面添加到堆栈,并设置当前页面索引。可以使用信号和槽机制来触发页面切换事件,例如点击按钮切换页面。通过设置当前页面索引,可以在页面之间来回切换。 2. 使用Tab页:创建一个QTabWidget的实例来管理页面,将不同的页面添加到Tab页。可以在Tab页上添加标签或者按钮,通过用户点击标签或者按钮来切换到不同的页面。通过设置当前活动标签页,可以在不同页面之间实现来回切换。 3. 使用StackedLayout:创建一个QStackedLayout的实例来管理页面,将要切换页面添加到布局。通过切换布局的当前索引,可以实现页面之间的切换。可以使用按钮或者其他交互控件来触发页面切换事件。 以上是几种常见的在Qt实现页面来回切换的方法,可以根据具体的需求选择合适的方法来实现页面切换

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

踏过山河,踏过海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值