1 Dialog::Dialog(QWidget *parent) : 2 QDialog(parent), 3 ui(new Ui::Dialog) 4 { 5 ui->setupUi(this); 6 7 list = new QListWidget(this); 8 list->insertItem(0,"win1"); 9 list->insertItem(1,"win2"); 10 list->insertItem(2,"win3"); 11 12 //用于传给stack 13 label1=new QLabel("win1"); 14 label2=new QLabel("win2"); 15 label3=new QLabel("win3"); 16 17 //创建新的栈 18 stack = new QStackedWidget(this); 19 //添加 20 stack->addWidget(label1); 21 stack->addWidget(label2); 22 stack->addWidget(label3); 23 //创建HBoxLayout 24 QHBoxLayout *qhl = new QHBoxLayout(this); 25 qhl->setMargin(10);//设置边框 26 qhl->setSpacing(5);//设置间隔 27 qhl->addWidget(list);//加入list 28 qhl->addWidget(stack,0,Qt::AlignCenter);//加入stack 29 qhl->setStretchFactor(stack,1);//设置可拓展性,是否能随着窗口的变化大小发生相应的变化 30 31 connect(list,SIGNAL(currentRowChanged(int)),stack,SLOT(setCurrentIndex(int))); 32 }