读书人

有关QStackedWidget有关问题

发布时间: 2012-12-14 10:33:07 作者: rapoo

有关QStackedWidget问题

#include "widget.h"
#include "ui_widget.h"
#include<QWidget>
#include<QVBoxLayout>
#include<QComboBox>
#include<QStackedWidget>
#include<QLabel>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{ QWidget *firstPageWidget = new QWidget;
QWidget *secondPageWidget = new QWidget;
QWidget *thirdPageWidget = new QWidget;

QLabel *label=new QLabel(firstPageWidget);
label->setText("abc");


QStackedWidget *stackedWidget = new QStackedWidget;
stackedWidget->addWidget(firstPageWidget);
stackedWidget->addWidget(secondPageWidget);
stackedWidget->addWidget(thirdPageWidget);

QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(stackedWidget);
this->setLayout(layout);

QComboBox *pageComboBox = new QComboBox(this);
pageComboBox->addItem(tr("Page 1"));
pageComboBox->addItem(tr("Page 2"));
pageComboBox->addItem(tr("Page 3"));
connect(pageComboBox, SIGNAL(activated(int)),
stackedWidget, SLOT(setCurrentIndex(int)));
ui->setupUi(this);
}

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


我是刚刚学Qt,所以请高手指点一下,我想做个页面切换,然后就写出上面的代码,在第一个页面搞了个Label,但是发觉运行后那个Label没有显示出来,是不是QStackedWidget没有出现呢?
[最优解释]
具体有点忘记了。
如果不是currentWidget()->show()的话

你需要获得当前内容的那个widget

QWidget *contentWidget1 = new ....;
QWidget *contentWidget2 = new ....;
QWidget *contentWidget3 = new ....;
QWidget *contentWidget4 = new ....;

stackWidget->addWidget(contentWidget1);
stackWidget->addWidget(contentWidget2);
stackWidget->addWidget(contentWidget3);
stackWidget->addWidget(contentWidget4);

contentWidget1 到4就是需要show()一下哈。
[其他解释]
setCurrentWidget()确保是要显示当前的widget.

还是翻页以后 要显示之前的需要show()一下。
[其他解释]
引用:
setCurrentWidget()确保是要显示当前的widget.

还是翻页以后 要显示之前的需要show()一下。
请问是要改成firstPageWidget.show()吗
[其他解释]
不是哈。

currentWidge()->show();

读书人网 >QT开发

热点推荐