首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

有关QStackedWidget有关问题

2012-12-14 
有关QStackedWidget问题#include widget.h#include ui_widget.h#includeQWidget#includeQVBoxLayou

有关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();

热点排行