堆栈窗体QStackedWidget类

来源:互联网 发布:ubuntu启动程序命令 编辑:程序博客网 时间:2024/05/22 01:41

//头文件
#include <QWidget>
#include <QListWidget>
#include <QStackedWidget>
#include <QLabel>
class Widget : public QWidget
{
    Q_OBJECT
public:
    Widget(QWidget *parent = 0);
    ~Widget();
private:
    QListWidget *listWidget;
    QStackedWidget *stacked;
    QLabel *lab;
    QLabel *lab1;
    QLabel *lab2;
};
//源文件
#include "widget.h"
#include <QHBoxLayout>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    listWidget = new QListWidget;
    listWidget->insertItem(0,"Window1");
    listWidget->insertItem(1,"Window2");
    listWidget->insertItem(2,"Window3");
    //三个堆栈窗体
    lab = new QLabel("坑爹");
    lab1 = new QLabel("坑儿子");
    lab2 = new QLabel("找你妹");
    //新建一个堆栈窗体对象,堆栈窗体包含三个窗体
    stacked = new QStackedWidget;
    stacked->addWidget(lab);
    stacked->addWidget(lab1);
    stacked->addWidget(lab2);
    //将QListWidget的currentRowChanged信号与堆栈窗体setCurrentIndex槽函数联系起来,实现按选择显示窗体
    connect(listWidget,SIGNAL(currentRowChanged(int)),stacked,SLOT(setCurrentIndex(int)));
    QHBoxLayout *mainLayout = new QHBoxLayout(this);
    mainLayout->addWidget(listWidget);
    mainLayout->addWidget(stacked,0,Qt::AlignHCenter);
    mainLayout->setStretchFactor(listWidget,1);
    mainLayout->setStretchFactor(stacked,3);
}
Widget::~Widget()
{
}


0 0
原创粉丝点击