在实际运用中堆栈窗体经常和QListWidget下拉列表框QComboBox配合使用。
现在我们手动地创建一个堆栈窗体。新建一个工程,取消创建图形界面。在这个功能中需要使用到,QListWidget对象、QTextEdit对象、QStackedWidget对象以及用于水平布局的QHBoxLayout对象。所以我们需要在类中添加相应的成员。
然后我们需要在这个类的构造函数中添加如下的代码。
新建一个QListWidget对象,并且向其中三个条目,作为选择的选项。
list = new QListWidget(this); //在新建的QListWidget控件中插入三个条目作为选项 list->insertItem(0, "windows1"); list->insertItem(1, "windows2"); list->insertItem(2, "windows3");
然后将三个QTextEdit对象初始化,并且给它们设定一下属性,让它们的文本居中对齐。
//创建三个QTextEdit控件依次插入堆栈窗体中 text1 = new QTextEdit("文本编辑框1"); text1->setAlignment(Qt::AlignCenter); text2 = new QTextEdit("文本编辑框2"); text2->setAlignment(Qt::AlignCenter); text3 = new QTextEdit("文本编辑框3"); text3->setAlignment(Qt::AlignCenter);
再将这三个文本编辑框依次插入到堆栈窗体中就可以了
stack = new QStackedWidget(this); stack->addWidget(text1); stack->addWidget(text2); stack->addWidget(text3)
接下来就是将QListWidget对象和QStackedWidget对象进行水平布局。
mainlayout = new QHBoxLayout(this); mainlayout->setMargin(5); mainlayout->setSpacing(5); mainlayout->addWidget(list); mainlayout->addWidget(stack); mainlayout->setStretchFactor(list, 1); mainlayout->setStretchFactor(stack, 4);
这里说一下setStretchFactor();函数的作用,这里表示list和stack两者之间的比例,以上的例子是1:4,
最后将list和stack通过信号和槽连接起来我们就可以根据选择list中的选项,来显示不同是文本编辑框了。