编程语言
527
容器类型控件
1. QWidget
关于
QWidget在前面的章节中已经介绍过了, 这个类是所有窗口类的父类, 可以作为独立窗口使用, 也可以内嵌到其它窗口中使用。 Qt中的所有控件都属于窗口类, 因此这个类也是所有控件类的基类。 如果一个窗口中还有子窗口, 为了让子窗口有序排列, 这时候我们可以选择一个QWidget类型的容器, 将子窗口放到里边, 然后再给这个QWidget类型窗口进行布局操作。 介绍一下关于这个类的一些属性,因为这个类是所有窗口类的基类,因此相关属性比较多

关于这些属性大部分都有对应的API函数, 在属性名前加
set即可, 大家可以自己从QWidget这个类里边搜索,并仔细阅读关于这些函数的参数介绍。
在Qt中我们除了使用QWidget类型窗口作为容器使用, 也可以根据实际需求选择其他类型的容器, 下面看看具体都有哪些。

上述容器中, 着重为介绍常用的, 比如:Group Box, Scroll Area, Tool Box, Tab Widget, Stacked Widget, Frame, 关于Dock Widget 已经介绍过, 不在赘述。
2. Frame
QFrame就是一个升级版的QWidget, 它继承了QWidget的属性, 并且做了拓展, 这种类型的容器窗口可以提供边框, 并且可以设置边框的样式、宽度以及边框的阴影。
2.1 相关API
关于这个类的API, 一般是不在程序中调用的, 但是还是给大家介绍一下
/* 边框形状为布尔类型, 可选项为: - QFrame::NoFrame: 没有边框 - QFrame::Box: 绘制一个框 - QFrame::Panel: 绘制一个面板,使内容显示为凸起或凹陷 - QFrame::StyledPanel: 绘制一个外观取决于当前GUI样式的矩形面板。它可以上升也可以下沉。 - QFrame::HLine: 画一条没有边框的水平线(用作分隔符) - QFrame::VLine: 画一条没有边框的垂直线(用作分隔符) - QFrame::WinPanel: 绘制一个矩形面板,可以像Windows 2000那样向上或向下移动。 指定此形状将线宽设置为2像素。WinPanel是为了兼容而提供的。 对于GUI风格的独立性,我们建议使用StyledPanel代替。 */ // 获取边框形状 Shape frameShape() const; // 设置边框形状 void setFrameShape(Shape); /* Qt中关于边框的阴影(QFrame::Shadow)提供了3种样式, 分别为: - QFrame::Plain: 简单的,朴素的, 框架和内容与周围环境显得水平; 使用调色板绘制QPalette::WindowText颜色(没有任何3D效果) - QFrame::Raised: 框架和内容出现凸起;使用当前颜色组的明暗颜色绘制3D凸起线 - QFrame::Sunken: 框架及内容物凹陷;使用当前颜色组的明暗颜色绘制3D凹线 */ // 获取边框阴影样式 Shadow frameShadow() const; // 设置边框阴影样式 void setFrameShadow(Shadow); // 得到边框线宽度 int lineWidth() const; // 设置边框线宽度, 默认值为1 void setLineWidth(int); // 得到中线的宽度 int midLineWidth() const; // 设置中线宽度, 默认值为0, 这条线会影响边框阴影的显示 void setMidLineWidth(int);
2.2 属性设置
这个类的属性并不多, 都是关于边框的设置的。

这个表格显示了一些
边框样式和线宽以及阴影的组合:

广告