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 .