热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

QT:控件精讲(四)容器ContainersWidgets

QtCreator有9种ContainersWidgets,如图:ContainersWidgets的Qt类和名称介绍如下表:控件类控件名

    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
 


推荐阅读
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • 本文介绍了lintcode(12)题目的要求和解题思路,以及给出了相应的代码实现。题目要求在给定的字符串source中找到包括所有目标字符串字母的最短子串,并且时间复杂度为O(n)。解题思路是使用滑动窗口的方法,通过维护一个unordered_map来记录目标字符串中每个字符的出现次数,并使用双指针来寻找最小子串。代码实现部分给出了具体的实现代码。 ... [详细]
  • C++语言入门:数组的基本知识和应用领域
    本文介绍了C++语言的基本知识和应用领域,包括C++语言与Python语言的区别、C++语言的结构化特点、关键字和控制语句的使用、运算符的种类和表达式的灵活性、各种数据类型的运算以及指针概念的引入。同时,还探讨了C++语言在代码效率方面的优势和与汇编语言的比较。对于想要学习C++语言的初学者来说,本文提供了一个简洁而全面的入门指南。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • 学习笔记17:Opencv处理调整图片亮度和对比度
    一、理论基础在数学中我们学过线性理论,在图像亮度和对比度调节中同样适用,看下面这个公式:在图像像素中其中:参数f(x)表示源图像像素。参数g(x)表示输出图像像素。 ... [详细]
  • 第一步:PyQt4Designer设计程序界面该部分设计类同VisvalStudio内的设计,改下各部件的objectName!设计 ... [详细]
  • [翻译]PyCairo指南裁剪和masking
    裁剪和masking在PyCairo指南的这个部分,我么将讨论裁剪和masking操作。裁剪裁剪就是将图形的绘制限定在一定的区域内。这样做有一些效率的因素࿰ ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • c语言\n不换行,c语言printf不换行
    本文目录一览:1、C语言不换行输入2、c语言的 ... [详细]
author-avatar
1234567山02
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有