Qt5开发及实例学习之堆栈窗口StackedWidget
时间: 2018-09-02来源:OSCHINA
前景提要
「深度学习福利」大神带你进阶工程师,立即查看>>> 1、新建GUI应用,项目名称"StackedWidget",基类选择"QDialog",类名命名为StackDlg,取消创建界面
stackDlg.h #ifndef STACKDLG_H #define STACKDLG_H #include <QDialog> #include <QDialog> #include <QListWidget> #include <QStackedWidget> #include <QLabel> class StackDlg : public QDialog { Q_OBJECT public: StackDlg(QWidget *parent = 0); ~StackDlg(); private: QListWidget *list; QStackedWidget *stack; QLabel *label1; QLabel *label2; QLabel *label3; }; #endif // STACKDLG_H
stackwindows.cpp #include "stackdlg.h" #include <QHBoxLayout> // StackDlg::StackDlg(QWidget *parent) : QDialog(parent) { setWindowTitle(tr("StackedWidget")); list = new QListWidget(this); //新建一个QListWidget对象 list->insertItem(0, tr("window1")); //插入三个条目 list->insertItem(1, tr("window2")); list->insertItem(2, tr("window3")); label1 = new QLabel(tr("windowTest1")); //新建三个标签对象,作为堆栈窗口需要显示的三层窗体 label2 = new QLabel(tr("windowTest2")); label3 = new QLabel(tr("windowTest3")); stack = new QStackedWidget(this); //新建一个堆栈窗体对象 stack->addWidget(label1); //将新建的三个QLabel标签控件依次插入堆栈窗体中 stack->addWidget(label2); stack->addWidget(label3); QHBoxLayout *mainLayout = new QHBoxLayout(this); //对整个对话框进行布局 mainLayout->setMargin(5); //设置对话框的边距为5 mainLayout->setSpacing(5); //设置各个控件之间的间距为5 mainLayout->addWidget(list); mainLayout->addWidget(stack,0,Qt::AlignHCenter); mainLayout->setStretchFactor(list, 1); //设置list为可伸缩控件 mainLayout->setStretchFactor(stack,3); connect(list,SIGNAL(currentRowChanged(int)),stack,SLOT(setCurrentIndex(int))); //将 QListWidget的currentRowChanged信号和堆栈窗体的setCurrentIndex槽函数连接起来,实现按选择显示窗体。 } StackDlg::~StackDlg() { }

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行