//.h
#ifndef STACKDLG_H

#define STACKDLG_H
#include
#include
#include
#include
#include
class stackdlg : public QDialog
{Q_OBJECT
public:
stackdlg(QWidget *parent = 0,Qt::WindowFlags f1=0);
~stackdlg();
private:
QLabel *label1;//聲明QLabel類的對象
QLabel *label2;
QLabel *label3;
QTextEdit *textEdit1;//聲明QTextEdit類的對象
QTextEdit *textEdit2;
QTextEdit *textEdit3;
QComboBox *comboBoxList;//聲明comboBoxList組合框
QStackedWidget *stackLabel;
QStackedWidget *stackText;
};
#endif // STACKDLG_H
//main.cpp
#include
#include "stackdlg.h"
#include
int main(int argc, char *argv[])
{ QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312")); QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));QApplication a(argc, argv);
stackdlg w;
w.show();
return a.exec();
}
stackdlg.cpp
#include "stackdlg.h"
#include
#include
#include
stackdlg::stackdlg(QWidget *parent,Qt::WindowFlags f1)
: QDialog(parent,f1)
{ setWindowTitle(tr("棧窗口"));comboBoxList=new QComboBox(this);//創(chuàng)建一個組合框(comboBoxList)
comboBoxList->insertItem(0,tr("窗口1"));//添加3個條目,第一個參數(shù)是條目的索引值,第二個為條目內(nèi)容 comboBoxList->insertItem(1,tr("窗口2")); comboBoxList->insertItem(2,tr("窗口3")); label1=new QLabel(tr("這是窗口1!"));//創(chuàng)建標(biāo)簽 label2=new QLabel(tr("這是窗口2!")); label3=new QLabel(tr("這是窗口3!")); textEdit1=new QTextEdit(tr("第一個窗口。"));//創(chuàng)建多行文本輸入框 textEdit2=new QTextEdit(tr("第二個窗口。")); te xtEdit3=new QTextEdit(tr("第三個窗口。"));//創(chuàng)建兩個棧部件
stackLabel=new QStackedWidget(this);
stackLabel->addWidget(label1);
stackLabel->addWidget(label2);
stackLabel->addWidget(label3);
stackText=new QStackedWidget(this);
stackText->addWidget(textEdit1);
stackText->addWidget(textEdit2);
stackText->addWidget(textEdit3);
QHBoxLayout *layoutH1=new QHBoxLayout();//水平布局管理器
layoutH1->addStretch();
layoutH1->addWidget(comboBoxList);
QVBoxLayout *mainLayout=new QVBoxLayout(this);//垂直布局管理器
mainLayout->setMargin(25);
mainLayout->setSpacing(25);
mainLayout->addLayout(layoutH1);//延伸因子為1
mainLayout->addWidget(stackLabel);
mainLayout->addWidget(stackText);
//通過setStretchFactor設(shè)置comboBoxList、stackLabel、stackText拉伸比例1:1:3
mainLayout->setStretchFactor(comboBoxList,1);
mainLayout->setStretchFactor(stackLabel,1);
mainLayout->setStretchFactor(stackText,3);
//將comboBoxList和stackLabel進(jìn)行連接
//單擊stackLabel彈出窗口
connect(comboBoxList,SIGNAL(currentIndexChanged(int)),stackLabel,SLOT(setCurrentIndex(int)));
//單擊stackText彈出窗口
connect(stackLabel,SIGNAL(currentChanged(int)),stackText,SLOT(setCurrentIndex(int)));
}
stackdlg::~stackdlg()
{}
愛華網(wǎng)



