QFrame 类是可以拥有框架的 Widget 基类。 更多...
| 头: | #include <QFrame> |
| qmake: | QT += widgets |
| 继承: | QWidget |
| 继承者: |
QAbstractScrollArea , QLabel , QLCDNumber , QSplitter , QStackedWidget ,和 QToolBox |
| enum | Shadow { Plain, Raised, Sunken } |
| enum | Shape { NoFrame, Box, Panel, StyledPanel, HLine, …, WinPanel } |
| enum | 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 |
| void | initStyleOption (QStyleOptionFrame * option ) const |
| virtual void | changeEvent (QEvent * ev ) override |
| virtual bool | event (QEvent * e ) override |
| virtual void | paintEvent ( QPaintEvent * ) override |
QMenu 使用此 Raise (凸起) 菜单在周围屏幕上方。 QProgressBar 拥有 Sunken (凹陷) 外观。 QLabel 拥有 Flat (扁平) 外观。像这些的 Widget 框架可以改变。
QLabel label(...); label.setFrameStyle(QFrame::Panel | QFrame::Raised); label.setLineWidth(2); QProgressBar pbar(...); label.setFrameStyle(QFrame::NoFrame);
QFrame 类还可以用于直接创建没有任何内容的简单占位符框架。
框架样式的指定通过 框架形状 和 阴影样式 用于在视觉上分隔框架与周围 Widget。这些特性可以一起设置使用 setFrameStyle () 函数和读取采用 frameStyle ().
框架形状包括 NoFrame , Box , Panel , StyledPanel , HLine and VLine ;阴影样式包括 Plain , Raised and Sunken .
框架 Widget 拥有 3 个描述边框厚度的属性: lineWidth , midLineWidth ,和 frameWidth .
定制框架和框架内容之间的边距采用 QWidget::setContentsMargins () 函数。
此表展示一些样式和线宽的组合:
此枚举类型定义用于把 3D 效果,赋予框架的阴影类型。
| 常量 | 值 | 描述 |
|---|---|---|
QFrame::Plain
|
0x0010
|
框架和内容外观与周围齐平;绘制使用调色板 QPalette::WindowText 颜色 (没有任何 3D 效果) |
QFrame::Raised
|
0x0020
|
框架和内容外观凸起;使用当前颜色组的明暗颜色,绘制 3D 凸起线条 |
QFrame::Sunken
|
0x0030
|
框架和内容外观凹陷;使用当前颜色组的明暗颜色,绘制 3D 凹陷线条 |
阴影交互影响 QFrame::Shape , lineWidth () 和 midLineWidth ()。见主类文档编制框架图片。
另请参阅 QFrame::Shape , lineWidth (),和 midLineWidth ().
此枚举类型定义框架可用形状。
| 常量 | 值 | 描述 |
|---|---|---|
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 ,形状交互影响 QFrame::Shadow , lineWidth () 和 midLineWidth () 以创建总结果。见主类文档编制框架图片。
另请参阅 QFrame::Shadow , QFrame::style (),和 QStyle::drawPrimitive ().
此枚举定义 2 常量,可以用于提取 2 分量为 frameStyle ():
| 常量 | 值 | 描述 |
|---|---|---|
QFrame::Shadow_Mask
|
0x00f0
|
The Shadow 部分在 frameStyle () |
QFrame::Shape_Mask
|
0x000f
|
The Shape 部分在 frameStyle () |
通常,不需要使用这些,由于 frameShadow () 和 frameShape () 已提取 Shadow 和 Shape 部分 frameStyle ().
另请参阅 frameStyle () 和 setFrameStyle ().
此特性保持框架的矩形
框架矩形是在其中绘制框架的矩形。默认情况下,这是整个 Widget。设置矩形 doesn't 导致 Widget 更新。会自动调节框架矩形,当 Widget 改变大小时。
若将矩形设为 null 矩形 (例如, QRect (0, 0, 0, 0)),那么结果帧矩形相当于 小部件矩形 .
访问函数:
| QRect | frameRect () const |
| void | setFrameRect ( const QRect & ) |
此特性保持来自框架样式的框架阴影值
访问函数:
| QFrame::Shadow | frameShadow () const |
| void | setFrameShadow ( QFrame::Shadow ) |
另请参阅 frameStyle () 和 frameShape ().
此特性保持来自框架样式的框架形状值
访问函数:
| QFrame::Shape | frameShape () const |
| void | setFrameShape ( QFrame::Shape ) |
另请参阅 frameStyle () 和 frameShadow ().
此特性保持绘制框架的宽度。
注意:框架宽度从属 框架样式 ,不只线宽和中线宽。例如,样式指定通过 NoFrame 始终拥有 0 宽框架,而样式 Panel 拥有的框架宽度等于线宽。
访问函数:
| int | frameWidth () const |
另请参阅 lineWidth (), midLineWidth (),和 frameStyle ().
此特性保持线宽
注意, total 线宽为框架用作分隔符 ( HLine and VLine ) 的指定是通过 frameWidth .
默认值为 1。
访问函数:
| int | lineWidth () const |
| void | setLineWidth ( int ) |
另请参阅 midLineWidth and frameWidth .
此特性保持中线宽度
默认值为 0。
访问函数:
| int | midLineWidth () const |
| void | setMidLineWidth ( int ) |
另请参阅 lineWidth and frameWidth .
构造框架 Widget 采用框架样式 NoFrame 和 1 像素框架宽度。
The parent and f 自变量被传递给 QWidget 构造函数。
[虚拟]
QFrame::
~QFrame
()
销毁框架。
[override virtual protected]
void
QFrame::
changeEvent
(
QEvent
*
ev
)
重实现: QWidget::changeEvent (QEvent *event).
[override virtual protected]
bool
QFrame::
event
(
QEvent
*
e
)
重实现: QWidget::event (QEvent *event).
返回框架样式。
默认值为 QFrame::Plain .
另请参阅 setFrameStyle (), frameShape (),和 frameShadow ().
[protected]
void
QFrame::
initStyleOption
(
QStyleOptionFrame
*
option
) const
初始化 option 采用值来自此 QFrame 。此方法对子类是有用的,当需要 QStyleOptionFrame 但不希望自己填充所有信息。
该函数在 Qt 5.5 引入。
另请参阅 QStyleOption::initFrom ().
[override virtual protected]
void
QFrame::
paintEvent
(
QPaintEvent *
)
重实现: QWidget::paintEvent (QPaintEvent *event).
将框架样式设为 style .
The style 是框架形状和框架阴影样式之间的按位 OR。见主类文档编制中的框架图片。
框架形状给出在 QFrame::Shape 和阴影样式在 QFrame::Shadow .
若指定大于 0 的中线宽度,则绘制附加线条为 Raised or Sunken Box , HLine ,和 VLine 框架。使用当前颜色组的中间色绘制中间线条。
另请参阅 frameStyle ().
[override virtual]
QSize
QFrame::
sizeHint
() const
重实现访问函数为特性: QWidget::sizeHint .