创建 一个 QListWidget 控件对象 ,用于同 QStackedWidget 关联
bool QBoxLayout::setStretchFactor(QWidget *widget, int stretch)
sets the stretch factor for widget to stretch and returns true if widget is found in this layout (not including child layouts); otherwise returns false.
将小部件的拉伸因子设置为拉伸,如果在此布局中找到小部件(不包括子布局),则返回true;否则返回false。
See also setAlignment().
#include "dialog.h"
#include <QHBoxLayout>
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{
setWindowTitle(tr("QT基础之堆栈窗体QStackedWidget类"));
// 创建 一个 QListWidget 控件对象 ,用于同 QStackedWidget 关联
list = new QListWidget();
list->addItem(tr("List 1"));
list->addItem(tr("List 2"));
list->addItem(tr("List 3"));
// 创建 三个 QLabel 标签控件对象,作为堆栈窗口需要显示的三层窗体
label1 = new QLabel(tr("WindowTest1"));
label2 = new QLabel(tr("WindowTest2"));
label3 = new QLabel(tr("WindowTest3"));
// 创建 QStackedWidget 堆栈窗体对象
stackedWidget = new QStackedWidget(this);
// 将 三个 QLabel 标签控件对象 插入 QStackedWidget
stackedWidget->addWidget(label1);
stackedWidget->addWidget(label2);
stackedWidget->addWidget(label3);
// 创建 布局
QHBoxLayout *layout = new QHBoxLayout(this);// 水平布局
layout->setMargin(5); // 对话框或窗体 边距 5
layout->setSpacing(5); // 各个控件之间的间距 5
layout->addWidget(list);
layout->addWidget(stackedWidget,5,Qt::AlignCenter);
layout->setStretchFactor(list,1); // 设定可伸缩控件 1个QListWidget
layout->setStretchFactor(stackedWidget,3); // 设定可伸缩控件 3个stackedWidget
connect(list, SIGNAL(currentRowChanged(int)),stackedWidget, SLOT(setCurrentIndex(int)));
}
Dialog::~Dialog()
{
}