Qt5开发及实例学习之堆栈窗口StackedWidget

1、新建GUI应用,项目名称"StackedWidget",基类选择"QDialog",类名命名为StackDlg,取消创建界面

stackDlg.h

#ifndef STACKDLG_H
#define STACKDLG_H

#include <QDialog>
#include <QDialog>
#include <QListWidget>
#include <QStackedWidget>
#include <QLabel>

class StackDlg : public QDialog
{
    Q_OBJECT

public:
    StackDlg(QWidget *parent = 0);
    ~StackDlg();
private:
    QListWidget *list;
    QStackedWidget *stack;
    QLabel *label1;
    QLabel *label2;
    QLabel *label3;
};

#endif // STACKDLG_H

stackwindows.cpp

#include "stackdlg.h"
#include <QHBoxLayout>
//
StackDlg::StackDlg(QWidget *parent)
    : QDialog(parent)
{
    setWindowTitle(tr("StackedWidget"));
    list = new QListWidget(this);  //新建一个QListWidget对象
    list->insertItem(0, tr("window1"));  //插入三个条目
    list->insertItem(1, tr("window2"));
    list->insertItem(2, tr("window3"));

    label1 = new QLabel(tr("windowTest1"));  //新建三个标签对象,作为堆栈窗口需要显示的三层窗体
    label2 = new QLabel(tr("windowTest2"));
    label3 = new QLabel(tr("windowTest3"));

    stack = new QStackedWidget(this);  //新建一个堆栈窗体对象
    stack->addWidget(label1);  //将新建的三个QLabel标签控件依次插入堆栈窗体中
    stack->addWidget(label2);
    stack->addWidget(label3);

    QHBoxLayout *mainLayout = new QHBoxLayout(this); //对整个对话框进行布局
    mainLayout->setMargin(5); //设置对话框的边距为5
    mainLayout->setSpacing(5); //设置各个控件之间的间距为5
    mainLayout->addWidget(list);
    mainLayout->addWidget(stack,0,Qt::AlignHCenter);
    mainLayout->setStretchFactor(list, 1);  //设置list为可伸缩控件
    mainLayout->setStretchFactor(stack,3);
    connect(list,SIGNAL(currentRowChanged(int)),stack,SLOT(setCurrentIndex(int)));
    //将 QListWidget的currentRowChanged信号和堆栈窗体的setCurrentIndex槽函数连接起来,实现按选择显示窗体。
}

StackDlg::~StackDlg()
{

}

 

转载于:https://my.oschina.net/u/3919756/blog/1941146

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值