QFrame 类
QFrame 类是具有边框的窗口部件的基类。 更多...
头文件 | #include <QFrame> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake | QT += widgets |
继承自 | QWidget |
派生自 | QAbstractScrollArea, QLabel, QLCDNumber, QSplitter, QStackedWidget, 和 QToolBox |
公共类型
枚举 | Shadow { Plain, Raised, Sunken } |
枚举 | Shape { NoFrame, Box, Panel, StyledPanel, HLine, …, WinPanel } |
枚举 | StyleMask { Shadow_Mask, Shape_Mask } |
属性
|
|
公共函数
QFrame(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()) | |
virtual | ~QFrame() |
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) |
重写的公共函数
virtual QSize | sizeHint() const override |
受保护的函数
virtual void | initStyleOption(QStyleOptionFrame *option) const |
重新实现保护函数
virtual void | changeEvent(QEvent *ev) override |
virtual bool | event(QEvent *e) override |
virtual void | paintEvent(QPaintEvent *) override |
详细描述
QMenu 使用此方法将菜单“提升”到周围屏幕上方。 QProgressBar 有一种“凹陷”的外观。 QLabel 有一种平坦的外观。这些小部件的框架可以更改。
QLabel label(...); label.setFrameStyle(QFrame::Panel | QFrame::Raised); label.setLineWidth(2); QProgressBar pbar(...); label.setFrameStyle(QFrame::NoFrame);
QFrame 类还可以直接用于创建没有任何内容的一般占位符框架。
框架样式由一个 框架形状 和一个 阴影样式 确定,这些样式用于在视觉上将框架与周围小部件分开。可以使用 setFrameStyle() 函数一起设置这些属性,并使用 frameStyle() 函数读取。
框架形状是 NoFrame(无边界)、Box(框)、Panel(面板)、StyledPanel(样式面板)、HLine(水平线)和 VLine(垂直线);阴影样式是 Plain(平面)、Raised(凸起)和 Sunken(凹陷)。
框架小部件有三个属性,用于描述边框的厚度:lineWidth(线宽)、midLineWidth(中线宽)和 frameWidth(框架宽)。
- 线宽是框架边框的宽度。它可以被更改以自定义框架的外观。
- 中线宽度指定了框架中间额外的线的宽度,该线使用第三种颜色以获得特殊的 3D 效果。请注意,中线仅在 Box(框)、HLine(水平线)和 VLine(垂直线)框架被提升或凹陷时绘制。
- 框架宽由框架样式确定,使用 frameWidth() 函数可以获取定义给该样式的值。
可以使用 QWidget::setContentsMargins() 函数自定义框架和框架内容之间的边距。
此表展示了某些样式和线宽的组合
成员类型文档
enum QFrame::Shadow
此枚举类型定义了用于给框架增加 3D 效果的阴影类型。
常量 | 值 | 描述 |
---|---|---|
QFrame::Plain | 0x0010 | 框架和内容看起来与周围环境处于同一水平;使用调色板 QPalette::WindowText 颜色绘制(没有 3D 效果) |
QFrame::Raised | 0x0020 | 框架和内容看起来是凸起的;使用当前配色组的亮色和暗色绘制 3D 凸起线条 |
QFrame::Sunken | 0x0030 | 框架和内容看起来是凹陷的;使用当前配色组的亮色和暗色绘制 3D 凹陷线条 |
阴影与 QFrame::Shape、lineWidth() 和 midLineWidth 交互作用。请查看主类文档中框架的图片。
另请参阅 QFrame::Shape、lineWidth() 和 midLineWidth。
enum QFrame::Shape
此枚举类型定义了可用的框架形状。
常量 | 值 | 描述 |
---|---|---|
QFrame::NoFrame | 0 | QFrame 绘制无内容 |
QFrame::Box | 0x0001 | QFrame 在其内容周围绘制一个框 |
QFrame::Panel | 0x0002 | QFrame 绘制一个面板,使内容看起来凸起或凹下 |
QFrame::StyledPanel | 0x0006 | 绘制一个矩形面板,其外观取决于当前的GUI样式。它可以凸起或凹下。 |
QFrame::HLine | 0x0004 | QFrame 绘制一个水平线,围绕内容不绘制(可用作分隔符) |
QFrame::VLine | 0x0005 | QFrame 绘制一个垂直线,围绕内容不绘制(可用作分隔符) |
QFrame::WinPanel | 0x0003 | 绘制一个可以凸起或凹下的矩形面板,类似于Windows 2000中的那些。指定此形状将线宽设置为2像素。WinPanel是为了兼容性提供的。为了独立于GUI样式,我们建议使用StyledPanel。 |
当它不调用 QStyle 时,Shape通过与 QFrame::Shadow、线宽度《a href="qframe.html#lineWidth-prop" translate="no">lineWidth() 和《a href="qframe.html#midLineWidth-prop" translate="no">midLineWidth() 相互作用来创建总结果。请参阅主类文档中帧的图片。
另请参阅 QFrame::Shadow、QFrame::style() 和 QStyle::drawPrimitive。
枚举 QFrame::StyleMask
此枚举定义了两个常量,可用于提取 frameStyle() 的两个组件
常量 | 值 | 描述 |
---|---|---|
QFrame::Shadow_Mask | 0x00f0 | frameStyle() 中的 Shadow 部分 |
QFrame::Shape_Mask | 0x000f | frameStyle() 中的 Shape 部分 |
通常,您不需要使用这些(因为 frameShadow() 和 frameShape() 已提取了 frameStyle() 的 Shadow 和 Shape 部分)。
另请参阅 frameStyle() 和 setFrameStyle()。
属性文档
frameRect : QRect
此属性持有框架的矩形
框架矩形是框架绘制在内的矩形。默认情况下,这是整个小部件。设置矩形不导致小部件更新。当小部件更改大小时,框架矩形会自动调整。
如果您设置矩形为空矩形(例如,QRect(0, 0, 0, 0)),则结果框架矩形等效于小部件矩形。
访问函数
QRect | frameRect() const |
void | setFrameRect(const QRect &) |
frameShadow : Shadow
此属性持有从框架样式获得的框架阴影值
访问函数
QFrame::Shadow | frameShadow() const |
void | setFrameShadow(QFrame::Shadow) |
另请参阅 frameStyle() 和 frameShape()。
frameShape : Shape
此属性持有从框架样式获得的框架形状值
访问函数
QFrame::Shape | frameShape() const |
void | setFrameShape(QFrame::Shape) |
另请参阅 frameStyle() 和 frameShadow()。
[只读]
frameWidth : const int
此属性保存绘制框架的宽度。
请注意,框架宽度取决于框架样式,不仅仅是线条宽度和中线宽度。例如,由NoFrame指定的样式始终具有宽度为0的框架,而样式Panel的框架宽度与线条宽度相等。
访问函数
int | frameWidth() const |
另请参阅lineWidth()、midLineWidth()和frameStyle()。
lineWidth : int
此属性保存线条宽度。
请注意,用作分隔符的框架(例如HLine和VLine)的总线条宽度由frameWidth指定。
默认值是1。
访问函数
int | lineWidth() const |
void | setLineWidth(int) |
另请参阅midLineWidth和frameWidth。
midLineWidth : int
此属性保存中线的宽度。
默认值是0。
访问函数
int | midLineWidth() const |
void | setMidLineWidth(int) |
另请参阅lineWidth和frameWidth。
成员函数文档
[显式]
QFrame::QFrame(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
使用框架样式NoFrame和1像素框架宽度构建框架小部件。
parent和f参数传递给QWidget构造函数。
[虚拟 noexcept]
QFrame::~QFrame()
销毁框架。
[覆盖虚拟受保护]
void QFrame::changeEvent(QEvent *ev)
重新实现:QWidget::changeEvent(QEvent *event)。
[覆盖虚拟受保护]
bool QFrame::event(QEvent *e)
重新实现:QWidget::event(QEvent *event)。
int QFrame::frameStyle() const
返回框架样式。
默认值是QFrame::Plain。
另请参阅setFrameStyle()、frameShape和frameShadow。
[虚拟受保护]
void QFrame::initStyleOption(QStyleOptionFrame *option) const
使用此QFrame的值初始化 选项。此方法对于子类很有用,当它们需要QStyleOptionFrame但不想自行填写所有信息时。
[覆盖虚拟受保护]
void QFrame::paintEvent(QPaintEvent *)
重实现了:QWidget::paintEvent(QPaintEvent *event)。
void QFrame::setFrameStyle(int style)
设置为 样式。
样式 是帧形状和帧阴影样式的按位或。
帧形状在QFrame::Shape中给出,阴影样式在QFrame::Shadow中给出。
如果指定了大于 0 的中间线宽,则将在 凸起 或 凹进 的 框、水平线 和 垂直线 帧上绘制额外的线条。使用当前颜色组的中线颜色绘制中间线。
另请参阅frameStyle。
[覆盖虚拟]
QSize QFrame::sizeHint() const
实现对属性: QWidget::sizeHint 的访问函数。
© 2024 The Qt Company Ltd. 本文档中的贡献是各自所有者的版权。本提供的文档根据由自由软件基金会发布GNU 自由文档许可版本 1.3 的条款获得许可。Qt及其相关标志是芬兰和/或全球其他国家的 The Qt Company Ltd. 的商标。所有其他商标均为其各自所有者的财产。