Qt之布局管理——堆栈窗体QStackedWidget
来源:互联网 发布:h3c 7506e 端口镜像 编辑:程序博客网 时间:2024/05/05 01:08
1. 控件位置
Containers→StackedWidget
2.控件介绍
StackedWidget控件中文称作“控件栈”。Qt提供了这样一个控件栈,可以使开发人员用栈管理控件像用栈管理其他数据类型一样简单。控件栈只显示栈顶的控件。开发人员可以使用raiseWidget()函数把栈中任何其他控件移到栈顶,从而实现控件之间的切换。
3.控件设置选项
在Stacked Widget控件的properties选项中,一般常对以下选项进行设置。
name:该控件对应源代码中的名称;
currentPage:当前活动的页面;
pageName:当前活动页的名称;
font:设置该控件内部文本的字体。
4.常用成员函数
1) QWidgetStack::QWidgetStack ( QWidget *parent = 0, const char *name = 0 )
构造一个名称为name、父对象为parent的WidgetStack。
2) int QWidgetStack::addWidget ( QWidget *w, int id = -1 )
把控件w添加到该控件栈中,标识是id。
3) int QWidgetStack::id ( QWidget *w ) const
返回控件w的标识。
4) void QWidgetStack::raiseWidget ( int id ) [slot]
把标识为id的控件升到该控件栈的栈顶。
5) void QWidgetStack::raiseWidget ( QWidget *w ) [slot]
把控件w升到该控件栈的栈顶。
6) void QWidgetStack::removeWidget ( QWidget *w )
把控件w从该控件栈中删除。
7) QWidget *QWidgetStack::widget ( int id ) const
返回标识是id的控件。
4.应用
QStackedWidget类继承于QFrame类,用于堆栈窗体的管理。
Public Slots:
void setCurrentIndex( int index ) index参数的索引位置的部件,是可见的。(index默认为-1,表示堆栈为空)
void setCurrentWidget( QWidget * widget ) widget参数指定的部件,是可见的。
实现效果:
maindlg.h
- #ifndef MAINDLG_H
- #define MAINDLG_H
- #include <QtGui>
- class MainDlg : public QDialog
- {
- Q_OBJECT
- public:
- MainDlg(QWidget *parent = 0, Qt::WFlags flags = 0);
- ~MainDlg();
- private:
- QLabel *lab1;
- QLabel *lab2;
- QLabel *lab3;
- QListWidget *m_list;
- QStackedWidget *stack;
- };
- #endif // MAINDLG_H
maindlg.cpp
- #include "maindlg.h"
- MainDlg::MainDlg(QWidget *parent, Qt::WFlags flags)
- : QDialog(parent, flags)
- {
- setWindowTitle(tr("Stacked Widgets example"));
- //左部的列表框:
- m_list = new QListWidget;
- m_list->insertItem(0,tr("Window 1"));
- m_list->insertItem(1,tr("Window 2"));
- m_list->insertItem(2,tr("Window 3"));
- //右部的堆栈窗:
- stack = new QStackedWidget(this);
- lab1 = new QLabel(tr("This is window 1"));
- stack->addWidget(lab1);
- lab2 = new QLabel(tr("This is window 2"));
- stack->addWidget(lab2);
- lab3 = new QLabel(tr("This is window 3"));
- stack->addWidget(lab3);
- //布局;
- QHBoxLayout *mainLayout = new QHBoxLayout(this);
- mainLayout->addWidget(m_list);
- mainLayout->addWidget(stack,0,Qt::AlignHCenter);
- mainLayout->setMargin(5);
- mainLayout->setSpacing(5);
- mainLayout->setStretchFactor(m_list,1);
- mainLayout->setStretchFactor(stack,3);
- connect(m_list,SIGNAL(currentRowChanged(int)),stack,SLOT(setCurrentIndex(int)));
- }
- MainDlg::~MainDlg()
- {
- }
- Qt之布局管理——堆栈窗体QStackedWidget
- Qt布局管理-堆栈窗体QStackedWidget类
- Qt学习——堆栈窗体QStackedWidget类
- Qt学习——堆栈窗体QStackedWidget类 .
- Qt学习——堆栈窗体QStackedWidget类
- Qt学习——堆栈窗体QStackedWidget类
- Qt学习——堆栈窗体QStackedWidget类
- Qt布局管理: 堆栈窗体QStackedWidget类(纯代码实现)
- QT实战篇之——堆栈窗体QStackedWidget类 超详细版
- QT布局管理之堆栈窗体
- 【Qt5开发及实例】5、布局管理之堆栈窗体QStackedWidget类
- [QT]QT教程之实例分析[五]堆栈窗体 (QStackedWidget)
- 堆栈窗体QStackedWidget类以及布局QSplitter
- 初学Qt——菜单栏QAction+ QstackedWidget堆栈窗体实现切换分页
- Qt5布局管理(三)——QStackedWidget堆栈窗口类
- 堆栈窗体QStackedWidget
- 堆栈窗体QStackedWidget类
- 堆栈窗体QStackedWidget类
- 平台对接SQL server 数据库
- android 屏幕适配
- 串口实验烧录问题总结
- MJRefresh
- 揭开正则表达式的神秘面纱
- Qt之布局管理——堆栈窗体QStackedWidget
- 对java中对象的改变的深入理解
- 循环法一
- 随机生成10个数,并求出这10个数的和
- Android开发技巧:点击Button改变其背景颜色
- CSS3的基本介绍
- JAVA学习之---泛型
- ftp服务安装
- LeakDiag的使用和形成的LOG文件的分析方法