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

QStackedWidget有关问题

2012-03-20 
QStackedWidget问题传统的QStackedWidget创建的界面是和QListWidget一起使用的,但是我想创建成一组按钮,点

QStackedWidget问题
传统的QStackedWidget创建的界面是和QListWidget一起使用的,但是我想创建成一组按钮,点击每个按钮能分别的对应QStackedWidget里的子界面,我编写的代码如下:
mainwindow.h

C/C++ code
class MainWindow : public QWidget , public Ui::mainWindow{    Q_OBJECTpublic:    MainWindow(QWidget *parent=0);    ~MainWindow(void);protected:private slots:    void changed_1();    //定义setCurrentIndex接收槽    void changed_2();private:    //创建切换页面    void creatTest_1Page();    void creatTest_2Page();    QStackedLayout *stackedLayout;    QWidget *test_1Page;    QWidget *test_2Page;    QStackedWidget *stackedWidget;};


mainwindow.cpp
C/C++ code
MainWindow::MainWindow(QWidget *parent)    : QWidget(parent){    setupUi(this);    //分页面窗口的实现    void creatTest_1Page();    void creatTest_2Page();    QStackedWidget *stackedWidget=new QStackedWidget;    stackedWidget->addWidget(test_1Page);    stackedWidget->addWidget(test_2Page);    connect(testButton_1,SIGNAL(clicked()),this,SLOT(changed_1()));    connect(testButton_2,SIGNAL(clicked()),this,SLOT(changed_2()));//窗口布局管理    QHBoxLayout *middleButtonLayout=new QHBoxLayout;    middleButtonLayout->addWidget(testButton_1);    middleButtonLayout->addWidget(testButton_2);    QVBoxLayout *mainLayout=new QVBoxLayout;    mainLayout->addWidget(topLabel);    mainLayout->addLayout(middleButtonLayout);    mainLayout->addWidget(line);    mainLayout->addWidget(stackedWidget);    setLayout(mainLayout);}MainWindow::~MainWindow(){    mainWindowP->close();}void MainWindow::closeWindow(){    mainWindowP->close();    close();}void MainWindow::changed_1(){    stackedWidget->setCurrentIndex(0);}void MainWindow::changed_2(){    stackedWidget->setCurrentIndex(1);}void MainWindow::creatTest_1Page(){    test_1Page = new QWidget;}void MainWindow::creatTest_2Page(){    test_2Page = new QWidget;}


程序编译后提示如下错误:
Starting /home/zigbeewidget-build-desktop/zigbeewidget...
The program has unexpectedly finished.
/home/zigbeewidget-build-desktop/zigbeewidget exited with code 0

小弟不知道怎么解决,望高手指点

[解决办法]
MainWindow::MainWindow(QWidget *parent)
: QWidget(parent)
{
setupUi(this);

//分页面窗口的实现
void creatTest_1Page();
void creatTest_2Page();

QStackedWidget *stackedWidget=new QStackedWidget;
  //更改为:stackedWidget=new QStackedWidget;
// 因为此次定义的局部变量,而不是头文件中定义的stackedWidget。
stackedWidget->addWidget(test_1Page);
stackedWidget->addWidget(test_2Page);

热点排行