一、描述
QFrame 类也可以直接用于创建没有任何内容的简单占位符框架。
框架样式由框架形状和阴影样式指定,用于在视觉上将框架与周围的小部件分开。
可以使用 QWidget::setContentsMargins() 函数自定义框架和框架内容之间的边距。
一些样式和线宽的组合:
二、类型成员
1、enum QFrame::Shadow:此枚举类型定义用于为框架提供 3D 效果的阴影类型。
- Plain:框架和内容与周围平齐。使用调色板 QPalette::WindowText 颜色绘制(没有任何 3D 效果)
- Raised:框架和内容出现凸起; 使用当前颜色组的浅色和深色绘制 3D 凸起线
- Sunken:框架和内容出现凹陷; 使用当前颜色组的明暗颜色绘制 3D 凹陷线
2、enum QFrame::Shape:此枚举类型定义可用框架的形状。
- NoFrame:什么都不绘制
- Box:在其内容周围绘制一个框
- Panel:绘制一个面板,使内容显得凸起或凹陷
- StyledPanel:绘制一个矩形面板,其外观取决于当前的 GUI 样式。 它可以凸起或凹陷
- HLine:绘制一条水平线,不加框(用作分隔符)
- VLine:绘制一条垂直线,没有框(用作分隔符)
- WinPanel:绘制一个矩形面板,它可以像 Windows 2000 中的面板一样凸起或凹陷。指定此形状将线宽设置为 2 像素。提供 WinPanel 是为了兼容性。对于 GUI 样式独立性,建议改用 StyledPanel
3、enum QFrame::StyleMask:此枚举定义了两个常量,可用于提取 frameStyle() 的两个组件:
- Shadow_Mask:frameStyle() 的阴影部分
- Shape_Mask:frameStyle() 的形状部分
三、属性成员
1、frameRect : QRect
绘制框架的矩形。默认情况下是整个小部件。当小部件改变大小时,框架矩形会自动调整。
2、frameShadow : Shadow
框架样式的框架阴影。
3、frameShape : Shape
框架样式的框架形状。
4、frameWidth : const int
样式框架确定的宽度。例如,NoFrame 指定的样式的框架宽度始终为 0,而 Panel 指定的样式框架宽度等于 lineWidth。
5、lineWidth : int
框架的宽度。
用作分隔符的框架(HLine 和 VLine)的 lineWidth 由 frameWidth 指定。
6、midLineWidth : int
框架中间多出一条线的宽度,它使用第三种颜色来获得特殊的3D效果。仅为凸起(raised)或凹陷(sunken)的 Box、HLine、VLine 框架绘制中线。
四、成员函数
1、QFrame(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
构造一个具有框架样式 NoFrame 和 frameWidth = 1的框架小部件。
2、void setFrameStyle(int style)
设置框架样式。框架形状在 QFrame::Shape 中给出,阴影样式在 QFrame::Shadow 中给出。