The 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, ..., WinPanel } |
| enum | StyleMask { Shadow_Mask, Shape_Mask } |
|
|
| QFrame (QWidget * parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags()) | |
| ~QFrame () | |
| QRect | frameRect () const |
| Shadow | frameShadow () const |
| 形狀 | frameShape () const |
| int | frameStyle () const |
| int | frameWidth () const |
| int | lineWidth () const |
| int | midLineWidth () const |
| void | setFrameRect ( const QRect & ) |
| void | setFrameShadow ( Shadow ) |
| void | setFrameShape ( 形狀 ) |
| void | setFrameStyle (int style ) |
| void | setLineWidth ( int ) |
| void | setMidLineWidth ( int ) |
| virtual QSize | sizeHint () const |
| void | initStyleOption (QStyleOptionFrame * option ) const |
| virtual void | changeEvent (QEvent * ev ) |
| virtual bool | event (QEvent * e ) |
| virtual void | paintEvent ( QPaintEvent * ) |
The QFrame 類是可以擁有框架的 Widget 基類。
QMenu 使用此 Raise (凸起) 菜單在周圍屏幕上方。 QProgressBar 擁有 Sunken (凹陷) 外觀。 QLabel 擁有 Flat (扁平) 外觀。像這些的 Widget 框架可以改變。
QLabel label(...); label.setFrameStyle(QFrame::Panel | QFrame::Raised); label.setLineWidth(2); QProgressBar pbar(...); label.setFrameStyle(QFrame::NoFrame);
The QFrame class can also be used directly for creating simple placeholder frames without any contents.
框架樣式的指定通過 框架形狀 和 陰影樣式 用於在視覺上分隔框架與周圍 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 ().
此特性保持框架的矩形
The frame's rectangle is the rectangle the frame is drawn in. By default, this is the entire widget. Setting the rectangle does does not 導緻 Widget 更新。會自動調節框架矩形,當 Widget 改變大小時。
若將矩形設為 null 矩形 (例如, QRect (0, 0, 0, 0)),那麼結果幀矩形相當於 小部件矩形 .
訪問函數:
| QRect | frameRect () const |
| void | setFrameRect ( const QRect & ) |
此特性保持來自框架樣式的框架陰影值
訪問函數:
| Shadow | frameShadow () const |
| void | setFrameShadow ( Shadow ) |
另請參閱 frameStyle () 和 frameShape ().
此特性保持來自框架樣式的框架形狀值
訪問函數:
| 形狀 | frameShape () const |
| void | setFrameShape ( 形狀 ) |
另請參閱 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 構造函數。
銷毀框架。
[virtual protected]
void
QFrame::
changeEvent
(
QEvent
*
ev
)
重實現自 QWidget::changeEvent ().
[virtual protected]
bool
QFrame::
event
(
QEvent
*
e
)
重實現自 QObject::event ().
返迴框架樣式。
默認值為 QFrame::Plain .
另請參閱 setFrameStyle (), frameShape (),和 frameShadow ().
[protected]
void
QFrame::
initStyleOption
(
QStyleOptionFrame
*
option
) const
初始化 option 采用值來自此 QFrame 。此方法對子類是有用的,當需要 QStyleOptionFrame 但不希望自己填充所有信息。
該函數在 Qt 5.5 引入。
另請參閱 QStyleOption::initFrom ().
[virtual protected]
void
QFrame::
paintEvent
(
QPaintEvent *
)
重實現自 QWidget::paintEvent ().
將框架樣式設為 style .
The style 是框架形狀和框架陰影樣式之間的按位 OR。見主類文檔編製中的框架圖片。
框架形狀給齣在 QFrame::Shape 和陰影樣式在 QFrame::Shadow .
若指定大於 0 的中綫寬度,則繪製附加綫條為 Raised or Sunken Box , HLine ,和 VLine 框架。使用當前顔色組的中間色繪製中間綫條。
另請參閱 frameStyle ().
[虛擬]
QSize
QFrame::
sizeHint
() const
重實現自 QWidget::sizeHint ().