带边框的部件
框架控件QFrame类
QFrame类介绍
QFrame 类是带有边框的部件的基类,带边框部件的特点是有一个明显的边框,QFrame类就是用来实现边框的不同效果的(把这种效果称为边框样式),所有继承自 QFrame 的子类都可以使用 QFrame 类实现的效果。
部件通常是矩形的(其他形状的原理类似),由下图可见,矩形的边界线有粗有细,而且还可以有其他形式,而 QFrame 类主要就是描述的类似于下图矩形的边界线的形式(或样式),只不过在 Qt 中把这种矩形的边界线称为部件的边框。
对边框线条使用不同的颜色、粗细度、明暗度等可以使整个部件在视觉上呈现出不同的效果(见下图),比如使部件的边框看起来相对于内容是向上凸或向下凹的,或者使内容看起来高于或底于边框。
从以上讲解可知,边框可以使部件的边框或内容看起来是向上凸或向下凹的,Qt 从以下几方面对其进行描述:
- 使用“边框形状(frame shape)”来描述向上凸或向下凹的是边框还是内容,Qt 把此处的边框称为 Box,把此处的内容称为 Panel。
- 使用“阴影样式(shadow style)”来描述是向上凸、向下凹或是平面。Qt 使用 Raised(提升)表示向上凸,使用 Sunken 表示向下凹,使用 Plain 表示平面。
- 线宽(lineWidth):即边框线的宽度。(见下图)
- 中线宽(midLimeWidth):是指边框中间的额外线的宽度(见下图),它使用第三种颜色以获得特殊的 3D 效果,中线仅用于 Raised(提升)或 Sunken(下沉)的 Box、HLine 和VLine 边框。
- 边框宽(frameWidth):指的边框的总宽度(见下图),具体取决于使用的样式。
QFrame 类中的枚举如下:
QFrame 的边框样式主要由该类的枚举和属性决定,下图为 QFrame 的边框样式的效果:
QFrame 类中的属性函数
1)frameShadow:Shadow
访问函数:Shadow frameShadow() const; void setFrameShadow(Shadow);
此属性描述了边框的阴影效果(Shadow),即向上凸、向下凹还是平面。
2)frameShape:Shape 访问函数:Shape frameShape() const; void setFrameShape(Shape);
此属性描述了边框的形状(Shape),即 Box 还是 Panel(面板)或线。
3)frameWidth:const int 访问函数:int frameWidth() const;
此属性描述了边框的总宽度,具体取决于使用的样式。
4)lineWidth:int 访问函数:int lineWidth() const; void setLineWidth (int);