QFrame 類

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 = 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

靜態公共成員

const QMetaObject staticMetaObject

保護函數

void initStyleOption (QStyleOptionFrame * option ) const

重實現保護函數

virtual void changeEvent (QEvent * ev ) override
virtual bool event (QEvent * e ) override
virtual void paintEvent ( QPaintEvent * ) override

額外繼承成員

詳細描述

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 .

  • 綫寬是框架邊框的寬度。可以修改它以自定義框架外觀。
  • 中綫寬度指定框架中間額外綫條的寬度,使用第 3 種顔色以獲得特殊 3D 效果。注意:隻繪製中綫對於 Box , HLine and VLine 凸起或凹陷框架。
  • 框架寬度由框架樣式確定,和 frameWidth () 函數用於獲取由所用樣式定義的值。

定製框架和框架內容之間的邊距采用 QWidget::setContentsMargins () 函數。

此錶展示一些樣式和綫寬的組閤:

Table of frame styles

成員類型文檔編製

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 ,形狀交互影響 QFrame::Shadow lineWidth () 和 midLineWidth () 以創建總結果。見主類文檔編製框架圖片。

另請參閱 QFrame::Shadow , QFrame::style (),和 QStyle::drawPrimitive ().

enum QFrame:: StyleMask

此枚舉定義 2 常量,可以用於提取 2 分量為 frameStyle ():

常量 描述
QFrame::Shadow_Mask 0x00f0 The Shadow 部分在 frameStyle ()
QFrame::Shape_Mask 0x000f The Shape 部分在 frameStyle ()

通常,不需要使用這些,由於 frameShadow () 和 frameShape () 已提取 Shadow Shape 部分 frameStyle ().

另請參閱 frameStyle () 和 setFrameStyle ().

特性文檔編製

frameRect : QRect

此特性保持框架的矩形

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 & )

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

此特性保持綫寬

注意, total 綫寬為框架用作分隔符 ( HLine and VLine ) 的指定是通過 frameWidth .

默認值為 1。

訪問函數:

int lineWidth () const
void setLineWidth ( int )

另請參閱 midLineWidth and frameWidth .

midLineWidth : int

此特性保持中綫寬度

默認值為 0。

訪問函數:

int midLineWidth () const
void setMidLineWidth ( int )

另請參閱 lineWidth and frameWidth .

成員函數文檔編製

QFrame:: QFrame ( QWidget * parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

構造框架 Widget 采用框架樣式 NoFrame 和 1 像素框架寬度。

The parent and f 自變量被傳遞給 QWidget 構造函數。

[虛擬] QFrame:: ~QFrame ()

銷毀框架。

[override virtual protected] void QFrame:: changeEvent ( QEvent * ev )

重實現自 QWidget::changeEvent ().

[override virtual protected] bool QFrame:: event ( QEvent * e )

重實現自 QWidget::event ().

int QFrame:: frameStyle () const

返迴框架樣式。

默認值為 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 ().

void QFrame:: setFrameStyle ( int style )

將框架樣式設為 style .

The style 是框架形狀和框架陰影樣式之間的按位 OR。見主類文檔編製中的框架圖片。

框架形狀給齣在 QFrame::Shape 和陰影樣式在 QFrame::Shadow .

若指定大於 0 的中綫寬度,則繪製附加綫條為 Raised or Sunken Box , HLine ,和 VLine 框架。使用當前顔色組的中間色繪製中間綫條。

另請參閱 frameStyle ().

[override virtual] QSize QFrame:: sizeHint () const

重實現自 QWidget::sizeHint ().