2017-08-17 45 views
0

我是Qt新手,必须为此创建一个具有多个窗口的GUI,我发现使用Qt设计工具的QStackedWidget类。如何在GUI中使用QStackedWidget?

我加入QStackedWidget使用添加新建 - > Qt设计形式类 - > Qstackwidget

后我创建该类的一个对象在我的主窗口

#ifndef MAINWINDOW_H 
#define MAINWINDOW_H 

#include <QMainWindow> 
#include<stackedwidget.h> 

namespace Ui { class MainWindow; } 

class MainWindow : public QMainWindow { 
    Q_OBJECT 

public: 
    explicit MainWindow(QWidget *parent = 0); 
    ~MainWindow(); 

private slots: 
    void on_pushButton_clicked(); 

private: 
    Ui::MainWindow *ui; 
    StackedWidget *stk; }; 

#endif // MAINWINDOW_H 

然后我试图通过显示StackedWidget :

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

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow) 
{ 
    ui->setupUi(this); 

} 

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

void MainWindow::on_pushButton_clicked() 
{ 
    stk = new StackedWidget(this); 
    stk->show(); 
} 

但stackwidget是不开放。

有人能告诉我我在做什么错,怎么实现QStackedWidget使用设计工具的GUI?

+0

你想用这个小部件做什么,你期望什么? – eyllanesc

+0

更改'stk = new StackedWidget(this); stk-> show();'to'stk = new StackedWidget(this); () - > layout() - > addWidget(stk);' – eyllanesc

+0

我想在其中添加多个页面,但现在我甚至无法理解如何显示它 –

回答

1

QStackedWidget类提供了一堆小部件,其中一次只能看到一个小部件。

你是新来的Qt,所以我建议你使用Qt设计:Image Example

您可以拖动&下降StackedWidget到您的表单,自定义它,然后用箭头进入下一个页面,它的工作了。

StackedWidget就像一个矢量,你可以通过索引访问它们。

ui->stackedWidget->setCurrentIndex(1);