Qt控件精讲四:容器

Qt Creator有9种Containers Widgets,如图:


Containers Widgets的Qt类和名称介绍如下表:

控件类控件名中文名
QGroupBoxGroupBox组合框
QScrollAreaScrollArea滚动区
QToolBoxToolBox工具箱
QTabWidgetTabWidget切换卡
QWidgetStackWidgetStack控件栈
QFrameFrame框架
QWidgetWidget组件
QMdiAreaMdiAreaMDI窗口显示区
QDockWidgetDockWidget停靠窗口

一、GroupBox控件

1.控件位置:Containers->GroupBox

2.控件介绍:GroupBox好处就是用户可以比较清晰地了解程序的界面,我们可以把功能相关的控件放到一个GroupBox中。

3.控件属性设置选项:

(1)name:该控件对应源代码中的名称

(2)title:该控件对应图形界面中所显示的名称

(3)font:设置title的字体

二、ScrollArea控件

1.控件位置:Containers->ScrollArea

2.控件介绍:用来显示子控件的内容的框架,如果子控件的尺寸超过了框架的大小,可以使用滚动条,方便查看整个子控件

3.控件属性设置选项:

(1)neme:同上

(2)font:设置文本框的字体

4.常用成员函数

(1)QScrollArea::QScrollArea(QWidget *parent = 0)

构造一个父对象为parent的ScrollArea

(2)void QScrollArea::setWidget(QWidget *widget)

设置控件widget为该ScrollArea的子控件

(3)QWidget *SCrollArea::takeWidget()

删除该ScrollArea的子控件

(4)QWidget *QScrollArea::widget()const

返回该ScrollArea的子控件

三、ToolBox控件

1.控件位置:Containers->ToolBox

2.控件介绍:ToolBox提供了一系列的页和隔间,就像Qt Creator中的工具箱一样。

3.控件属性设置选项

(1)name:同上

(2)font:同上

(3)currentIndex:当前活动页的索引

(4)itemLabel:当前活动页的标签

(5)itemName:当前活动页的名称

(6)itemBackgroundModel:当前活动页的背景模式

4.常用成员函数

(1)QToolBox::QToolBox(QWidget *parent = 0,const char *name = 0,QFlags f = 0)

构造一个名称为name,父对象为parent和标志位f的ToolBox

(2)int QToolBox(QWidget *item,const QIconSet &iconSet,const QString &label)

增加一个item到ToolBox的底部,新增加的item的标签的文本是label,标签的图标是iconSet

(3)int QToolBox(QWidget *item,const QString &label)

增加一个item到ToolBox底部,新增加的item的标签文本是label

(4)int ToolBox::count()const

返回该工具箱中item数目

(5)int ToolBox::currentIndex()const

返回当前活动item的索引

(6)QWidget *QToolBox::currentItem()const

返回当前活动item,如果该ToolBox为空,返回0

(7)int ToolBox::indexof(QWidget *item)const

返回item的索引

(8)int QToolBox::insertItem(int index,QWidget *item,const QIconSet &iconSet,const QString &label)

在索引index处插入一个新的项目,项目是item,标签图标是iconSet,标签文本时label,返回插入item的索引

(9)int QToolBox::insertItem(int index,QWidget *item,const QString &label)

在索引index处插入一个新的项目,项目的名称是item,标签文本是label,返回插入item的索引。

(10)QWidget *QToolBox::item(int index)const

返回索引为index位置的item

(11)QString QToolBox::itemLabel(int index)const

返回索引为index位置的标签

(12)int QToolBox::RemoveItem(QWidget *item)

删除ToolBox中的item的项目,删除成功后返回item的索引,否则返回-1

(13)void QToolBox::setCurrentIndex(int index)

设置索引为index位置的项目为当前活动项目

(14)void QToolBox::setCurrentIndex(QWidget *item)

设置索引item为当前活动的项目

(15)void QToolBox::setItemLabel(int index,const QString &label)

设置label为索引index位置的项目的标签文本

四、TabWidget控件

1.控件位置:Containers->TabWidget

2.控件介绍:切换卡控件顶部或底部有一个标签选项栏,每个标签选项都有一个页面,选择哪个页面,只需单击对应的标签即可,或按指定ALT+字母快捷键组合即可。

3.控件属性设置选项

(1)name:同上

(2)currentPage:当前活动的页面

(3)margin:页面边框的空白宽度,默认是0

(4)tabShap:标签选项的模式

(5)pageName:当前活动页的名称

(6)pageTitle:当前活动也得标签文本

4.常用成员函数

(1)QTabWidget::QTabWidget(QWidget *parent = 0,const char *name = 0,WFlags f = 0)

构造一个名称为name、父对象为parent和标记为f的TabWidget

(2)void QTabWidget::addTab(QWidget *child,const QString &label)[virtual]

增加子页到该TabWidget,子页控件是child,子页标签文本是label

(3)void QTabWidget::addTab(QWidget *child,const QIconSet &iconset,const QString &label)[virtual]

这是一个重载成员函数,功能同函数2,只是增加了一个iconset,iconset是图标集

(4)QString QTabWidget::tabLabel(QWidget *w)const

返回索引index处子页的选项标签文本

(5)void QTabWidget::changeTab(QWidget *w,const QString &label)

更改子页w的标签文本为label

(6)void QTabWidget::changeTab(QWidget *w,const QIconSet &iconset,const QString &label)

更改子页w的图标为iconset,和更改标签文本为label

(7)int QTabWidget::count()const

返回该TabWidget中子页的数目

(8)QWidget *QTabWidget::currentPage()const

返回当前活动子页

(9)int QTabWidget::currentPageIndex()const

返回当前活动子页的索引

(10)int QTabWidget::indexOf(QWidget *w)const

返回子页w的索引

(11)void QTabWidget::insertTab(QWidget *child,const QString &label,int index = -1)[virtual]

在索引index处插入新的子页,子页控件是child,子页标签文本是label。注意:在插入新的子页时要确保插入的子页名与标签文本与TabWidget中的所有子页不同,如果指定index就是在指定的位置插入,否则就和简单地添加一样。

(12)void QTabWidget::insetTab(QWidget *child,const QIconSet &iconset,const QString &label,int index = -1)[virtual]

在索引index处插入新的子页,子页控件是child,子页标签文本是label,子页图标为iconset

(13)QString QTabWidget::label(int index)const

返回索引index处子页的选项标签

(14)QWidget *QTabWidget::page(int index)const

返回索引index处子页

(15)void QTabWidget::removePage(QWidget *w)[virtual slot]

删除子页w

(16)void QTabWidget::setCurrentPage(int index)[slot]

设置索引index处子页为当前活动页

(17)void QTabWidget::setTabLabel(QWidget *w,const QString &label)

设置子页w的标签文本为label

五、StackedWidget控件

1.控件位置:Containers->StackedWidget

2.控件介绍:Qt提供了这样一个控件栈,可以使开发人员使用栈管理控件,像用栈管理其他数据类型一样简单。控件栈只显示栈顶的控件,开发人员可以使用raiseWidget()函数把栈中任何其他控件移到栈顶,从而实现控件之间的切换。

3.控件属性设置选项:

(1)name:同上

(2)currentPage:当前活动的页面

(3)pageName:当前活动页的名称

(4)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的控件

六、Frame控件

1.控件位置:Containers->Frame

2.控件介绍:框架控件用来存放其他控件,也可用于装饰,它一般用来作为更加复杂容器的基础。也可以用在form中作为占用控件。

3.控件属性设置选项:

(1)name:同上

(2)framesShape:框架外形格式

(3)framesShadow:框架阴影格式

(4)frameWidth:框架的宽度(只读)

(5)LineWidth:线宽

4.常用成员函数

(1)QFrame::QFrame(QWidget *parent = 0,const char *name = 0,WFlags f = 0)

构造一个框架风格为NoFrame并且1像素框架宽度的框架窗口部件,如:QFrame *f = new();

七、Widget控件

1.控件位置:Containers->Widget

2.控件介绍:Widget组件在创建时是不可见的,他可以包含子控件,在删除该Widget时,子控件也一起删除。

3.控件属性设置选项:

(1)name:同上

(2)font:设置表盘上的字体

(3)cursor:设置鼠标光标样式

4.常用成员函数:

(1)QWidget::QWidget(QWidget *parent = 0,const char *name = 0,WFlags f = 0)

构造一个名称为name,父对象为parent的Widget

(2)QWidget *QWidget::childAt(int x,int y,bool includeThis = FALSE)const

返回该Widget坐标系统中像素位置(x,y)处的可视的子窗口部件

(3)QWidget *QWidget::childAt(const QPoint &p,bool includeThis = FALSE)const

返回该Widget坐标系统位置p处的可视的子窗口部件

(4)void QWidget::drawText(int x,int y,const QString &str)

在该Widget坐标系统中像素位置(x,y)处绘制字符串str

(5)void QWidget::drawText(const QPoint &p,const QString &str)

在该Widget坐标系统中位置p处绘制字符串str

八、MdiArea控件

1.控件位置:Containers->MdiArea
2.控件介绍:MdiArea控件中文称作“MDI窗口显示区”,MDI是Multiple Document Interface的简称,中文意思是多文档界面,主要适用于完成一项工作时需要用到多个文件。QMainWindow是SDI(Signal Document Interface,单文档界面)每个开启的文件占据一个视窗,主要适用于所有工作没有太多文件参与的情况。
3.控件属性设置选项;
(1)name:同上
(2)font:同上
(3)viewMode:设置视图模式Qt提供TabbedView和SubWindowView两种选择
(4)documentMode:保存的标签栏在选项卡视图模式是否设置为文件的模式,默认为false。
(5)tabShape:(当viewMode是TabbedView时)设置该MdiArea的标签形式Qt提供两种选择:Rounded和Triangular。
(6)tabPosition:(当viewMode是TabbedView时)设置标签所在方向
(7)activeSubWindowName:子窗口的名称
(8)activeSubWindowTitle:子窗口的标签
4.常用成员函数

(1)QMdiArea::QMdiArea(QWidget *parent = 0)

构造一个父对象为parent的MdiArea

(2)void QMdiArea::activateNextSubWindow()[slot]

激活下一个窗口

(3)void QMdiArea::activatePreviousSubWindow()[slot]

激活上一个窗口

(4)QMdiSubWindow *QMdiArea::activateSubWindow()const

返回当前活动子窗口,如果当前没有活动子窗口,返回0

(5)QMdiSubWindow *QMdiArea::addSubWindow(QWidget *widget,Qt::WindowFlags windowFlags = 0)

添加一个新的子窗口部件

(6)void QMdiArea::closeActiveSubWindow()[slot]

关闭当前活动子窗口

(7)void QMdiArea::closeAllSubWindow()[slot]

关闭所有子窗口

(8)QMdiSubWindow *QMdiArea::currentSubWindow()const

函数功能同activeSubWindow(0

(9)void QMdiArea::removeSubWindow(QWidget *widget)

删除widget,widget必须是该MdiArea的子部件

(10)void QMdiArea::setActiveSubWindow(QMdiSubWindow *window)[slot]

设置子窗口window为当前活动子窗口

九、DockWidget控件 

1.控件位置:Containers->DockWidget

2.控件介绍:停靠窗体,可以作为一个顶层窗口漂浮在桌面,主要作为辅助窗体出现在界面中,可以在很多IDE中看到停靠窗体

3.控件属性设置选项

(1)name:同上

(2)font:同上

(3)floating:设置该DockWidget是否为可漂浮

(4)feature:保存的停靠窗体一些功能,是否为可移动,可关闭或浮动等,默认是可移动可关闭和浮动

(5)allowedArea:该DockWidget可以停靠的地方

(6)windowTitle:该停靠窗体的标题

(7)dockWidgetArea:设置该DockWidget的停靠地方

(8)docked:设置该DockWidget是否是停靠着的

4.常用成员函数

(1)QDockWidget::QDockWidget(const QString &title,QWidget *parent = 0,Qt::WindowFlags flags = 0)

构造一个标题为title,父对象为parent的DockWidget

(2)QDockWidget::QDockWidget(QWidget *parent = 0,Qt::WindowFlags flags = 0)

构造一个父对象为parent和标志位flags的DockWidget

(3)void QDockWidget::setTitleBarWidget(QWidget *widget)

设置widget为该DockWidget的标题栏,如果widget为0,将用默认标题栏代替

(4)QWidget *QDockWidget::titleBarWidget()const

返回该DockWidget定义的标题栏,如果没有定义标题栏,返回0

(5)void QDockWidget::setWidget(QWidget *widget)

设置widget为该DockWidget的部件,在调用这个函数之前,必须添加布局,否则widget就是不可见的

(6)QWidget *DockWidget::widget()const

返回该DockWidget的部件,如果没有设置部件,则返回0










  • 6
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值