一、前言
QFrame继承于QWidget,被QLCDNumber、QToolBox、QLabel、QListView等部件继承,是一个拥有矩形框架的基类。
QFrame可以直接创建成一个没有内容的的矩形框架,框架的样式由边框厚度(lineWidth)、框架形状(QFrame::Shape)和阴影样式(QFrame::Shadow)决定,下图是官网给出的组合样式图。
二、QFrame类
1、frameRect
该属性表示框架的尺寸,设置框架的尺寸不会对里面的内容做更新,内部小部件改变大小的时候,会自动调整框架的尺寸。
QRect frameRect() const //获取尺寸
void setFrameRect(const QRect &) //设置尺寸
2、frameShadow
该属性表示框架的阴影,效果参阅前文框架图片。
QFrame::Shadow frameShadow() const //获取阴影样式
void setFrameShadow(QFrame::Shadow) //设置阴影样式
名称 值 描述 QFrame::Plain 0x0010 框架和内容与周围环境齐平,没有任何3D效果 QFrame::Raised 0x0020 框架和内容显得凸起;使用当前色组的明暗颜色绘制3D凸起线 QFrame::Sunken 0x0030 框架和内容显得下沉;使用当前色组的明暗颜色绘制3D下沉线
3、frameShape
该属性标识框架的形状,效果参阅前文框架图片。
QFrame::Shape frameShape() const
void setFrameShape(QFrame::Shape)
名称 值 描述 QFrame::NoFrame 0 不绘制任何东西 QFrame::Box 0x0001 绘制一个箱体环绕边框 QFrame::Panel 0x0002 绘制一个面板,使内容看起来凸起或凹陷 QFrame::StyledPanel 0x0006 绘制一个矩形面板,其外观取决于当前的GUI样式。它可以凸起,也可以凹陷。 QFrame::HLine 0x0004 绘制一条水平线用作分隔符,该水平线不包含任何内容 QFrame::VLine 0x0005 绘制一条垂直线用作分隔符,该垂直线不包含任何内容 QFrame::WinPanel 0x0003 绘制一个矩形面板,可以像Windows 2000中的面板一样凸起或凹陷。指定此形状将线宽设置为2像素。WinPanel提供了兼容性。对于GUI样式独立,建议使用StyledPanel。
4、frameWidth
该属性表示框架的边框宽度,该属性取决于边框的样式,比如NoFrame指定的样式的宽度总是为0,而Panel样式的宽度等于线宽。
int frameWidth() const //获取宽度
5、lineWidth
该属性表示线宽,效果参阅前文框架图片。
int lineWidth() const //获取线宽
void setLineWidth(int) //设置线宽
6、midLineWidth
该属性表示内线宽,效果参阅前文框架图片。
int midLineWidth() const //获取内线宽
void setMidLineWidth(int) //设置内线宽
7、frameShadow
组合获取和设置frameShadow和frameShape样式。
int frameStyle() const //获取样式
void setFrameStyle(int style) //设置样式
实例:
QFrame penColorFrame = new QFrame;
penColorFrame->setFrameStyle(QFrame::Panel | QFrame::Sunken)