QStackedWidget

目录

1、属性

2、函数

3、信号

4、槽

5、测试代码


1、属性

1)count : const int : 返回堆栈窗体中小部件的数目;

2)currentIndex : int :小部件在堆栈窗体中的索引。

2、函数

1)int addWidget(QWidget *widget):在堆栈窗口中增加小部件,返回小部件的位置索引;

2)int count() const:堆栈窗口中小部件的数目;

3)int currentIndex() const:小部件在堆栈窗口中的位置索引;

4)QWidget *currentWidget() const:获取当前小部件;

5)int indexOf(QWidget *widget) const:获取指定下部件的索引;

6)int insertWidget(int index, QWidget *widget):在索引位置插入小部件;

7)void removeWidget(QWidget *widget):移除小部件;

8)QWidget *widget(int index) const:获取索引位置的小部件。

3、信号

1)void currentChanged(int index):当当前小部件改变时触发,index索引小部件;

2)void widgetRemoved(int index):当小界面被移除时触发,index索引小部件;

4、槽

1)void setCurrentIndex(int index):跳转到索引小部件;

2)void setCurrentWidget(QWidget *widget):跳转到小部件;

5、测试代码

#ifndef STACKDLG_H
#define STACKDLG_H

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

class stackDlg : public QDialog
{
    Q_OBJECT

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

#endif
#include "stackdlg.h"

stackDlg::stackDlg(QWidget *parent)
    : QDialog(parent)
{
    setWindowTitle(tr("堆栈窗口"));
    list =new QListWidget(this);	//新建一个QListWidget控件对象
    //在新建的QListWidget控件中插入三个条目,作为选择项
    list->insertItem(0,tr("堆栈窗口1"));
    list->insertItem(1,tr("堆栈窗口2"));
    //创建三个QLabel标签控件对象,作为堆栈窗口需要显示的三层窗体
    label1 =new QLabel(tr("堆栈窗口1"));
    label2 =new QLabel(tr("堆栈窗口2"));
    stack =new QStackedWidget(this);
    //将创建的三个QLabel标签控件依次插入堆栈窗体中
    stack->addWidget(label1);
    stack->addWidget(label2);
    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);
    mainLayout->setStretchFactor(stack,3);
    //链表中哪个索引改变了,就触发堆栈窗口中,显示对应索引的小部件
    connect(list,SIGNAL(currentRowChanged(int)),stack,SLOT(setCurrentIndex(int)));
}

stackDlg::~stackDlg()
{

}

显示:

发布了44 篇原创文章 · 获赞 54 · 访问量 7047

猜你喜欢

转载自blog.csdn.net/Liu_Xiao_Ming/article/details/103652263