堆栈窗体StackedWidget

堆栈窗体StackedWidget多与列表框QListWidget和下拉列表框QComboBox配合使用;

stackeddialog.h

#ifndef STACKEDDIALOG_H
#define STACKEDDIALOG_H

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

class StackedDialog : public QDialog
{
    
    
    Q_OBJECT

public:
    StackedDialog(QWidget *parent = nullptr);
    ~StackedDialog();

private:
    QListWidget *list;
    QStackedWidget *stack;
    QLabel *label1;
    QLabel *label2;
    QLabel *label3;
};
#endif // STACKEDDIALOG_H

stackeddialog.cpp

#include "stackeddialog.h"

#include <QHBoxLayout>

StackedDialog::StackedDialog(QWidget *parent)
    : QDialog(parent)
{
    
    
    setWindowTitle("StackedWidget");
    list = new QListWidget(this);   //新建一个QListWidget控件对象
    list->insertItem(0, "Window1"); //在新建的QListWidget控件中插入3个条目作为选择项
    list->insertItem(1, "Window2");
    list->insertItem(2, "Window3");

    label1 = new QLabel("Window Demo1"); //创建3个QLabel标签控件对象,作为堆栈窗口需要显示的三层窗体
    label2 = new QLabel("Window Demo2");
    label3 = new QLabel("Window Demo3");

    stack = new QStackedWidget(this); //创建一个QStackedWidget堆栈窗体对象
    stack->addWidget(label1); //将创建的3个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); //设定可以伸缩控件,第1个参数用于指定设置的控件(序号从0起编号),
                                           //第2个参数值大于0则表示此控件为可以伸缩控件
    mainLayout->setStretchFactor(stack, 3);
    connect(list, SIGNAL(currentRowChanged(int)), stack, SLOT(setCurrentIndex(int)));
}

StackedDialog::~StackedDialog()
{
    
    

}

main.cpp

#include "stackeddialog.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    
    
    QApplication a(argc, argv);
    StackedDialog w;
    w.show();
    return a.exec();
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u013420428/article/details/109672298