QT:控件精讲(四)容器Containers Widgets

    Qt Creator有9种Containers Widgets,如图:


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

    控件类     控件名     中文名
    QGroupBox     GroupBox     组合框
    QScrollArea     ScrollArea     滚动区
    QToolBox     ToolBox     工具箱
    QTabWidget     TabWidget     切换卡
    QWidgetStack     WidgetStack     控件栈
    QFrame     Frame     框架
    QWidget     Widget     组件
    QMdiArea     MdiArea     MDI窗口显示区
    QDockWidget     DockWidget     停靠窗口

    一、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
 

猜你喜欢

转载自blog.csdn.net/qq_25241325/article/details/84958332