重點知識已近在代碼裡注釋...
請仔細看代碼
本文原創.
轉載請保留此連結 http://blog.csdn.net/siren0203
標頭檔
stack.h
#ifndef STACK_H<br />#define STACK_H<br />#include <QDialog><br />#include <QObject><br />class QLabel;<br />class QListWidget;<br />class QStackedWidget;<br />class StackDlg:public QDialog{<br /> Q_OBJECT<br />public:<br /> StackDlg(QWidget *parent=0);<br /> QLabel *label1;<br /> QLabel *label2;<br /> QLabel *label3;<br /> QListWidget *list;<br /> QStackedWidget *stack;<br />};</p><p>#endif // STACK_H<br />
實現代碼
main.cpp
#include <QApplication><br />#include <QStackedWidget><br />#include <QListWidget><br />#include <QHBoxLayout><br />#include <QLabel><br />#include "stack.h"</p><p>StackDlg::StackDlg(QWidget *parent):QDialog(parent){<br /> setWindowTitle(tr("Stacked Widget"));<br /> //建立ComboBox 並插入三個選項<br /> list=new QListWidget(this);<br /> list->insertItem(0,tr("window 0"));<br /> list->insertItem(1,tr("window 1"));<br /> list->insertItem(2,tr("window 3"));<br /> //建立堆棧視窗顯示的三層表單<br /> label1=new QLabel(this);<br /> label1->setText("this is label1");<br /> label2=new QLabel(this);<br /> label2->setText("this is label2");<br /> label3=new QLabel(this);<br /> label3->setText("this is label3");<br /> //建立一個 堆棧表單<br /> stack=new QStackedWidget(this);<br /> //將LABEL表單添加到 堆棧表單<br /> stack->addWidget(label1);<br /> stack->addWidget(label2);<br /> stack->addWidget(label3);<br /> //布局管理<br /> QHBoxLayout *layout=new QHBoxLayout();<br /> layout->addWidget(list); //添加list<br /> layout->addWidget(stack); //添加stack<br /> layout->setStretchFactor(list,1);//設定 list所佔的位置<br /> layout->setStretchFactor(stack,3);//設定 stack所佔的位置<br /> layout->setMargin(5);<br /> layout->setSpacing(10);<br /> //將ComboBox 變化訊號 關聯到 堆棧表單槽<br /> connect(list,SIGNAL(currentRowChanged(int)),stack,SLOT(setCurrentIndex(int)));<br /> setLayout(layout);<br />}</p><p>int main(int argc,char ** argv){<br /> QApplication app(argc,argv);<br /> StackDlg dlg;<br /> dlg.show();<br /> return app.exec();<br />}<br />