1. 程式人生 > >《Qt5 開發與實例(第三版)》學習筆記(八)

《Qt5 開發與實例(第三版)》學習筆記(八)

nbsp font public insert enter body win parent hbox

 1 // 3.3 堆棧窗體 QStackedWidget類
 2 //stackdlg.h
 3 #ifndef STACKDLG_H
 4 #define STACKDLG_H
 5 
 6 #include <QDialog>
 7 #include <QListWidget>
 8 #include <QStackedWidget>
 9 #include <QLabel>
10 class StackDlg : public QDialog
11 {
12     Q_OBJECT
13 
14 public:
15     StackDlg(QWidget *parent = 0
); 16 ~StackDlg(); 17 private: 18 QListWidget *list; 19 QStackedWidget *stack; 20 QLabel *label1; 21 QLabel *label2; 22 QLabel *label3; 23 }; 24 25 #endif // STACKDLG_H 26 //stackdlg.cpp 27 #include "stackdlg.h" 28 #include <QHBoxLayout> 29 StackDlg::StackDlg(QWidget *parent)
30 : QDialog(parent) 31 { 32 setWindowTitle(tr("StackedWidget")); 33 list =new QListWidget(this);//新建一個QListWidget對象 34 list->insertItem(0,tr("Window1"));//插入條目 35 list->insertItem(1,tr("Window2")); 36 list->insertItem(2,tr("Window3")); 37 label1 =new QLabel(tr("WindowTest1
"));//創建標簽控件對象 38 label2 =new QLabel(tr("WindowTest2")); 39 label3 =new QLabel(tr("WindowTest3")); 40 stack =new QStackedWidget(this);//新建堆棧窗體對象 41 stack->addWidget(label1);//將標簽控件插入到堆棧窗體中 42 stack->addWidget(label2); 43 stack->addWidget(label3); 44 QHBoxLayout *mainLayout =new QHBoxLayout(this);//對整個對話框進行布局 45 mainLayout->setMargin(5);//對話框邊距 46 mainLayout->setSpacing(5);//控件之間的間距 47 mainLayout->addWidget(list); 48 mainLayout->addWidget(stack,0,Qt::AlignHCenter); 49 mainLayout->setStretchFactor(list,1); 50 mainLayout->setStretchFactor(stack,1); 51 connect(list,SIGNAL(currentRowChanged(int)),stack,SLOT(setCurrentIndex(int))); 52 53 } 54 55 StackDlg::~StackDlg() 56 { 57 58 }

《Qt5 開發與實例(第三版)》學習筆記(八)