Qt 的几个常用部件 -- QFrame

基本信息

头文件:

#include <QFrame>

CMake 引用方式:

find_package(Qt6 COMPONENTS Widgets REQUIRED) 
target_link_libraries(mytarget PRIVATE Qt6::Widgets)

qmake 引用方式:

 QT += widgets

QFrame 继承自 QWidget,被 QAbstractScrollArea, QLabel, QLCDNumber, QSplitter, QStackedWidget 和 QToolBox 继承

公共类型(可用来设置的):

通过定义不同的阴影类型来显示不同的 3D 效果
enum Shadow { Plain, Raised, Sunken }
定义框架的形状
enum Shape { NoFrame, Box, Panel, StyledPanel, HLine, …, WinPanel }
用来从 frameStyle() 中解析出 shadow 和 shape 两个属性
enum StyleMask { Shadow_Mask, Shape_Mask }

详细描述

QMenu 使用 “raise” 属性来使 menu 高于周围的屏幕. QProgressBar 使用 “sunken” 属性来使 QProgressBar 有下沉样式的外观. QLabel 有一个平滑的外观. 像这些 widget 的 frame 都可以修改.

QFrame类还可以直接用于创建不包含任何内容的简单占位符框架。

框架的样式可以使用 frame shape 和 shadow style 来指定。用来使框架独立于周围的 widgets. 这些属性也可以使用 setFrameStyle 一起设置并且使用 frameStyle 读取出来。

框架形状(frame shape) 是 “NoFrame, Box, Panel, StyledPanel, HLine 和 VLine”; 阴影样式是 “Plain, Raised 和 Sunken”.

框架部件有三个属性来描述边框的厚度: “lineWidth, midLineWidth 和 frameWidth”

lineWidth:  line width 指的是框架边框的宽度。可以通过修改它来自定义框架的外观。
QLabel *label = new QLabel(this);
  label->setFrameStyle(QFrame::Box | QFrame::Raised);
  label->setLineWidth(5);

在这里插入图片描述

midLineWidth: mid line width 指定框架内部线的宽度, 它使用第三种颜色来获得特殊的3D效果。注意 mid-line 只对是 raised 和 sunken 的 Box HLine VLine 框架生效。
QLabel *label = new QLabel(this);
label->setFrameStyle(QFrame::Box | QFrame::Raised);
label->setMidLineWidth(5);

效果如图
在这里插入图片描述

frame width: 由 frame style 来设定, 使用 frameWidth() 来获取设置的 frame width 值.

框架和框架内容之间的边缘可以使用 QWidget::setContentsMargins() 函数来设置。

下面展示几种样式和 line width 组合之后的显示效果:
在这里插入图片描述

可以处理的事件:

在这里插入图片描述

QFrame 部件就说那么多,剩下的函数功能啥的都是照本宣科没啥好说的, 需要的时候看文档就好了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值