首页 > 解决方案 > 不知道如何使用 QStackedWidget

问题描述

我想通过按下按钮从不同的 QWidgets 切换,但不知道该怎么做,当我运行它时,我单击按钮并没有任何反应,我的代码如下:

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

#include <qstackedwidget.h>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

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

void MainWindow::on_level_2Button_pressed()
{
    QWidget *page_1 = new QWidget;
    QWidget *page_2 = new QWidget;
    QStackedWidget *stackedWidget = new QStackedWidget;
    stackedWidget->addWidget(page_1);
    stackedWidget->addWidget(page_2);
    stackedWidget->setCurrentWidget(page_2);
}

任何帮助将不胜感激,我是相当新的 c++,我正在努力理解如何使用 QStackedWidgets,谢谢。

标签: c++qt

解决方案


查看您的代码,您尚未将小部件添加到主窗口:我将添加setCentralWidget(stackedWidget)您的代码。您也可以通过布局来做到这一点:只需创建一个布局(例如:)QVBoxLayout,将您的小部件添加到布局中(layout_name->addWidget(stackedWidget)并使用。如果您想使用布局,setLayout(layout_name)请不要忘记包含。QLayout

如果您想了解更多信息QStackedWidget,可以使用解释清楚的文档


推荐阅读