Qt入门系列开发教程基础控件篇框架QFrame

Posted 鱼酱2333

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt入门系列开发教程基础控件篇框架QFrame相关的知识,希望对你有一定的参考价值。

描述

QMenu 使用它来“提升”周围屏幕上方的菜单。 QProgressBar 有一个“下沉”的外观。 QLabel 外观扁平。像这样的小部件的框架可以更改。
QLabel 标签(…);
label.setFrameStyle(QFrame::Panel | QFrame::Raised);
标签.setLineWidth(2);

QProgressBar pbar(…);
label.setFrameStyle(QFrame::NoFrame);

QFrame 类也可以直接用于创建没有任何内容的简单占位符框架。
框架样式由框架形状和阴影样式指定,用于在视觉上将框架与周围的小部件分开。这些属性可以使用 setFrameStyle() 函数一起设置,并使用 frameStyle() 读取。
框架形状有 NoFrame、Box、Panel、StyledPanel、HLine 和 VLine;阴影样式是平原,凸起和沉没。
框架部件具有描述边框粗细的三个属性:lineWidth、midLineWidth 和 frameWidth。

线宽是框架边框的宽度。可以对其进行修改以自定义框架的外观。
中线宽度指定帧中间多出一条线的宽度,它使用第三种颜色来获得特殊的 3D 效果。请注意,仅针对凸起或凹陷的 Box、HLine 和 VLine 框架绘制中线。
框架宽度由框架样式确定,frameWidth() 函数用于获取为使用的样式定义的值。

可以使用 QWidget::setContentsMargins() 函数自定义框架和框架内容之间的边距

下表显示了一些样式和线宽的组合:

枚举

enum QFrame::Shadow

变量内容
QFrame::Plain0x0010框架和内容与周围环境保持水平; 使用调色板 QPalette::WindowText 颜色绘制(没有任何 3D 效果)
QFrame::Raised0x0020框架和内容出现凸起; 使用当前颜色组的浅色和深色绘制 3D 凸起线
QFrame::Sunken0x0030框架和内容出现凹陷; 使用当前颜色组的明暗颜色绘制 3D 凹陷线

enum QFrame::Shape

变量内容
QFrame::NoFrame0什么都不画
QFrame::Box0x0001在其内容周围绘制一个框
QFrame::Panel0x0002绘制一个面板以使内容看起来凸起或凹陷
QFrame::StyledPanel0x0006绘制一个矩形面板,其外观取决于当前的 GUI 样式。 它可以升起或下沉。
QFrame::HLine0x0004绘制一条没有框架的水平线(用作分隔符)
QFrame::VLine0x0005绘制一条没有框架的垂直线(用作分隔符)
QFrame::WinPanel0x0003绘制一个可以像 Windows 2000 中那样凸起或凹陷的矩形面板。指定此形状会将线宽设置为 2 像素。 提供 WinPanel 是为了兼容。 对于 GUI 样式独立性,我们建议改用 StyledPanel。

enum QFrame::StyleMask
| 变量 | 值 | 内容 |
| :------------------ | :----- | :----------------------------------------------------------- |
|QFrame::Shadow_Mask|0x00f0|frameStyle() 的阴影部分|
|QFrame::Shape_Mask|0x000f|frameStyle() 的 Shape 部分|

API

//frame矩形
QRect frameRect() const
//此属性保存来自框架样式的框架阴影值
 QFrame::Shadow frameShadow() const
 //此属性保存框架样式中的框架形状值
 QFrame::Shape frameShape() const
 int frameStyle() const
 int frameWidth() const
 //线宽度
 int lineWidth() const
 //中线宽度
 int midLineWidth() const
 void setFrameRect(const QRect &)
 //设置阴影
 void setFrameShadow(QFrame::Shadow)
//设置形状
 void setFrameShape(QFrame::Shape)
 void setFrameStyle(int style)
 void setLineWidth(int)
 void setMidLineWidth(int)

以上是关于Qt入门系列开发教程基础控件篇框架QFrame的主要内容,如果未能解决你的问题,请参考以下文章

Qt入门系列开发教程基础控件篇QLabel文本标签

Qt入门系列开发教程基础控件篇QLineEdit输入框

Qt入门系列开发教程基础控件篇小部件(所有控件的基类QWidget)

Qt入门系列开发教程基础控件篇QProgressBar进度条

Qt入门系列开发教程基础控件篇QCalendarWidget日历控件

Qt入门系列开发教程基础控件篇单选按钮QRadioButton