不确定如何使用QStackedWidget

时间:2018-07-07 19:46:39

标签: c++ qt

我想通过按下按钮从不同的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,谢谢。

1 个答案:

答案 0 :(得分:0)

查看您的代码,您尚未将小部件添加到主窗口:我将在代码中添加const MovieDetails = styled.div` display: flex; flex-direction: column; max-width: 800px; margin: 20px auto 60px auto; h1 { line-height: 1.5em; } h1 span { font-size: inherit; font-weight: normal; padding-left: 1rem; color: #bbb; line-height: inherit; } `; 。您也可以通过布局来做到这一点:只需创建一个布局(例如:setCentralWidget(stackedWidget)),将小部件添加到布局中(QVBoxLayout,然后使用layout_name->addWidget(stackedWidget)setLayout(layout_name),如果您想使用布局。

如果您想获取有关QLayout的更多信息,可以使用解释清楚的documentation