QStackedWidget


来源:http://xl028.blog.163.com/blog/static/1997302422013225285299/


QStackedWidget  


//window1.h

#ifndef WINDOW1_H

#define WINDOW1_H

#include <QWidget>

namespace Ui {
class window1;
}

class window1 : public QWidget
{
    Q_OBJECT   
public:
    explicit window1(QWidget *parent = 0);
    ~window1();   
private:
    Ui::window1 *ui;
};

#endif // WINDOW1_H
//window.cpp
#include "window1.h"
#include "ui_window1.h"

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

window1::~window1()
{
    delete ui;
} 
  
  
QStackedWidget - 直到永远 - 直到永远的博客
其它,window2和3一样!!
 
再看主窗口

//widget.h

#ifndef WIDGET_H

#define WIDGET_H

#include <QWidget>
class QListWidget;
class QStackedWidget;

namespace Ui {
class Widget;
}
class Widget : public QWidget
{
    Q_OBJECT  
public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();   
private:
    Ui::Widget *ui;
    QListWidget* list1;
    QStackedWidget* stack;
};

#endif // WIDGET_H

//widget.cpp

#include "widget.h"

#include "ui_widget.h"
#include "window1.h"
#include "window2.h"
#include "window3.h"
#include <QListWidget>
#include <QStackedWidget>
#include <QLabel>
#include <QHBoxLayout>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    list1 = new QListWidget(this);
    list1->insertItem(0,"window1");
    list1->insertItem(1,"window2");
    list1->insertItem(2,"window3");

    window1 *win1 = new window1;
    window2 *win2 = new window2;
    window3 *win3 = new window3;

    stack = new QStackedWidget(this);
    stack->addWidget(win1);
    stack->addWidget(win2);
    stack->addWidget(win3);
    QHBoxLayout *mainLayout=new QHBoxLayout(this);
     mainLayout->setMargin(5);
     mainLayout->setSpacing(5);
     mainLayout->addWidget(list1);
     mainLayout->addWidget(stack);
     mainLayout->setStretchFactor(list1,1);//设置宽比,这里为1:3
     mainLayout->setStretchFactor(stack,3);

    connect(list1,SIGNAL(currentRowChanged(int)),stack,SLOT(setCurrentIndex(int)));

}

Widget::~Widget()
{
    delete ui;
}
效果:
 
    
    
QStackedWidget - 直到永远 - 直到永远的博客
  QStackedWidget - 直到永远 - 直到永远的博客
QStackedWidget - 直到永远 - 直到永远的博客
 
最后,QStackedWidget,一般和QCombox和QListWidget一起使用








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值