目录
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()
{
}
显示: