QTabWidget 類

The QTabWidget 類提供選項卡式 Widget 堆棧。 更多...

頭: #include <QTabWidget>
qmake: QT += widgets
繼承: QWidget

公共類型

enum TabPosition { North, South, West, East }
enum TabShape { Rounded, Triangular }

特性

公共函數

QTabWidget (QWidget * parent = nullptr)
virtual ~QTabWidget ()
int addTab (QWidget * page , const QString & label )
int addTab (QWidget * page , const QIcon & icon , const QString & label )
void clear ()
QWidget * cornerWidget (Qt::Corner corner = Qt::TopRightCorner) const
int count () const
int currentIndex () const
QWidget * currentWidget () const
bool documentMode () const
Qt::TextElideMode elideMode () const
QSize iconSize () const
int indexOf (QWidget * w ) const
int insertTab (int index , QWidget * page , const QString & label )
int insertTab (int index , QWidget * page , const QIcon & icon , const QString & label )
bool isMovable () const
bool isTabEnabled (int index ) const
void removeTab (int index )
void setCornerWidget (QWidget * widget , Qt::Corner corner = Qt::TopRightCorner)
void setDocumentMode (bool set )
void setElideMode ( Qt::TextElideMode )
void setIconSize (const QSize & size )
void setMovable (bool movable )
void setTabBarAutoHide (bool enabled )
void setTabEnabled (int index , bool enable )
void setTabIcon (int index , const QIcon & icon )
void setTabPosition ( QTabWidget::TabPosition )
void setTabShape (QTabWidget::TabShape s )
void setTabText (int index , const QString & label )
void setTabToolTip (int index , const QString & tip )
void setTabWhatsThis (int index , const QString & text )
void setTabsClosable (bool closeable )
void setUsesScrollButtons (bool useButtons )
QTabBar * tabBar () const
bool tabBarAutoHide () const
QIcon tabIcon (int index ) const
QTabWidget::TabPosition tabPosition () const
QTabWidget::TabShape tabShape () const
QString tabText (int index ) const
QString tabToolTip (int index ) const
QString tabWhatsThis (int index ) const
bool tabsClosable () const
bool usesScrollButtons () const
QWidget * widget (int index ) const

重實現公共函數

virtual bool hasHeightForWidth () const override
virtual int heightForWidth (int width ) const override
virtual QSize minimumSizeHint () const override
virtual QSize sizeHint () const override

公共槽

void setCurrentIndex (int index )
void setCurrentWidget (QWidget * widget )

信號

void currentChanged (int index )
void tabBarClicked (int index )
void tabBarDoubleClicked (int index )
void tabCloseRequested (int index )

靜態公共成員

const QMetaObject staticMetaObject

保護函數

void initStyleOption (QStyleOptionTabWidgetFrame * option ) const
void setTabBar (QTabBar * tb )
virtual void tabInserted (int index )
virtual void tabRemoved (int index )

重實現保護函數

virtual void changeEvent (QEvent * ev ) override
virtual bool event (QEvent * ev ) override
virtual void keyPressEvent (QKeyEvent * e ) override
virtual void paintEvent (QPaintEvent * event ) override
virtual void resizeEvent (QResizeEvent * e ) override
virtual void showEvent ( QShowEvent * ) override

額外繼承成員

詳細描述

The QTabWidget 類提供選項卡式 Widget 堆棧。

選項卡小部件提供選項卡欄 (見 QTabBar ) 和頁麵區域用於顯示每選項卡相關頁麵。默認情況下,選項卡欄展示在頁麵區域上方,但有不同可用配置 (見 TabPosition )。每選項卡關聯不同 Widget (稱為頁麵)。頁麵區域僅展示當前頁麵。所有其它頁麵被隱藏。用戶可以展示不同頁麵通過點擊其選項卡或按下其 Alt+ letter 快捷鍵若有的話。

平常方式是使用 QTabWidget 是做以下:

  1. 創建 QTabWidget .
  2. 創建 QWidget 對於每選項卡對話框頁麵,但不要為它們指定父級小部件。
  3. 將子級 Widget 插入頁麵小部件,使用布局正常安放它們。
  4. 調用 addTab () 或 insertTab () 將頁麵 Widget 放入選項卡小部件,為每選項卡賦予適閤標簽采用可選鍵盤快捷鍵。

選項卡位置的定義通過 tabPosition ,它們的形狀通過 tabShape .

信號 currentChanged () 發射,當用戶選擇頁麵時。

當前頁麵索引可用作 currentIndex (),當前頁麵 Widget 采用 currentWidget ()。可以檢索具有給定索引的頁麵小部件指針使用 widget (),和可以查找小部件的位置索引采用 indexOf ()。使用 setCurrentWidget () 或 setCurrentIndex () 以展示特定頁麵。

可以更改選項卡的文本和圖標使用 setTabText () 或 setTabIcon ()。可以移除選項卡及其關聯頁麵采用 removeTab ().

可以隨時啓用或禁用每選項卡 (見 setTabEnabled ())。若選項卡被啓用,將正常繪製選項卡文本且用戶可以選擇該選項卡。若被禁用,將以不同方式繪製選項卡且用戶無法選擇該選項卡。注意,即使選項卡被禁用,頁麵仍可見 (例如:若所有選項卡被禁用)。

選項卡小部件可以是拆分復雜對話框的很好方式。另一方式是使用 QStackedWidget 提供在頁麵之間導航的一些手段,例如 QToolBar QListWidget .

大多數功能在 QTabWidget 的提供是通過 QTabBar (在頂部,提供選項卡) 和 QStackedWidget (大部分區域,組織各個頁麵)。

另請參閱 QTabBar , QStackedWidget , QToolBox ,和 選項卡對話框範例 .

成員類型文檔編製

enum QTabWidget:: TabPosition

此枚舉類型定義在哪裏 QTabWidget 繪製選項卡行:

常量 描述
QTabWidget::North 0 選項卡繪製在頁麵上方。
QTabWidget::South 1 選項卡繪製在頁麵下方。
QTabWidget::West 2 選項卡繪製在頁麵左側。
QTabWidget::East 3 選項卡繪製在頁麵右側。

enum QTabWidget:: TabShape

此枚舉類型定義選項卡的形狀:

常量 描述
QTabWidget::Rounded 0 選項卡采用圓角外觀繪製。這是默認形狀。
QTabWidget::Triangular 1 選項卡采用三角形外觀繪製。

特性文檔編製

count : const int

此特性保持選項卡欄的選項卡數

默認情況下,此特性包含 0 值。

訪問函數:

int count () const

currentIndex : int

此特性保持當前選項卡頁麵的索引位置

當前索引為 -1,若沒有當前 Widget。

默認情況下,此特性包含 -1 值,因為小部件最初沒有選項卡。

訪問函數:

int currentIndex () const
void setCurrentIndex (int index )

通知程序信號:

void currentChanged (int index )

documentMode : bool

This property holds whether or not the tab widget is rendered in a mode suitable for document pages. This is the same as document mode on macOS .

當設置此特性時,不渲染選項卡小部件框架。此模式用於展示文檔類型頁麵 (頁麵涵蓋大部分選項卡小部件區域)。

該特性在 Qt 4.5 引入。

訪問函數:

bool documentMode () const
void setDocumentMode (bool set )

另請參閱 elideMode , QTabBar::documentMode , QTabBar::usesScrollButtons ,和 QStyle::SH_TabBar_PreferNoArrows .

elideMode : Qt::TextElideMode

如何省略標簽欄文本

此特性控製如何省略項,當沒有足夠空間展示它們 (對於給定選項卡欄尺寸) 時。

默認情況下,值從屬樣式。

該特性在 Qt 4.2 引入。

訪問函數:

Qt::TextElideMode elideMode () const
void setElideMode ( Qt::TextElideMode )

另請參閱 QTabBar::elideMode , usesScrollButtons ,和 QStyle::SH_TabBar_ElideMode .

iconSize : QSize

此特性保持選項卡欄的圖標尺寸

默認值從屬樣式。這是圖標將擁有的最大尺寸。不會按比例放大圖標,若尺寸較小。

該特性在 Qt 4.2 引入。

訪問函數:

QSize iconSize () const
void setIconSize (const QSize & size )

另請參閱 QTabBar::iconSize .

movable : bool

此特性保持用戶是否可以在選項卡欄區域內,移動選項卡。

默認情況下,此特性為 false ;

該特性在 Qt 4.5 引入。

訪問函數:

bool isMovable () const
void setMovable (bool movable )

tabBarAutoHide : bool

若為 true,自動隱藏選項卡欄,當包含少於 2 個選項卡時。

默認情況下,此特性為 false。

該特性在 Qt 5.4 引入。

訪問函數:

bool tabBarAutoHide () const
void setTabBarAutoHide (bool enabled )

另請參閱 QWidget::visible .

tabPosition : TabPosition

此特性保持此選項卡小部件中選項卡的位置

此特性的可能值,描述通過 TabPosition 枚舉。

默認情況下,此特性被設為 North .

訪問函數:

QTabWidget::TabPosition tabPosition () const
void setTabPosition ( QTabWidget::TabPosition )

另請參閱 TabPosition .

tabShape : TabShape

此特性保持此選項卡小部件中選項卡的形狀

此特性的可能值, QTabWidget::Rounded (默認) 或 QTabWidget::Triangular .

訪問函數:

QTabWidget::TabShape tabShape () const
void setTabShape (QTabWidget::TabShape s )

另請參閱 TabShape .

tabsClosable : bool

此特性保持是否將關閉按鈕自動添加到每個選項卡。

該特性在 Qt 4.5 引入。

訪問函數:

bool tabsClosable () const
void setTabsClosable (bool closeable )

另請參閱 QTabBar::tabsClosable ().

usesScrollButtons : bool

此特性保持選項卡欄是否應使用捲動按鈕,當包含多個選項卡時。

當選項卡欄選項卡太多時 (對於其大小),選項卡欄可以選擇展開其大小,或添加按鈕以允許捲動選項卡。

默認情況下,值從屬樣式。

該特性在 Qt 4.2 引入。

訪問函數:

bool usesScrollButtons () const
void setUsesScrollButtons (bool useButtons )

另請參閱 elideMode , QTabBar::usesScrollButtons ,和 QStyle::SH_TabBar_PreferNoArrows .

成員函數文檔編製

QTabWidget:: QTabWidget ( QWidget * parent = nullptr)

構造選項卡式 Widget 采用父級 parent .

[虛擬] QTabWidget:: ~QTabWidget ()

銷毀選項卡式 Widget。

int QTabWidget:: addTab ( QWidget * page , const QString & label )

添加選項卡采用給定 page and label 到選項卡 Widget,並返迴選項卡在選項卡欄中的索引。所有權為 page 被傳遞給 QTabWidget .

若選項卡的 label 包含 & 和號,緊跟和號後的字母將用作選項卡快捷方式,如:若標簽為 Bro&wse,則 Alt+W 將變為快捷方式 (聚焦移至此選項卡)。

注意: 若調用 addTab() 後於 show (),布局係統將試著調節其小部件層次結構改變,且可能導緻閃爍。為防止這種情況,可以設置 QWidget::updatesEnabled 特性為 false 在改變前;記得設置特性為 true 當改變完成後,使小部件再次接收描繪事件。

另請參閱 insertTab ().

int QTabWidget:: addTab ( QWidget * page , const QIcon & icon , const QString & label )

這是重載函數。

添加選項卡采用給定 page , icon ,和 label 到選項卡 Widget,並返迴選項卡在選項卡欄中的索引。所有權為 page 被傳遞給 QTabWidget .

此函數如同 addTab (),但具有額外 icon .

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

重實現自 QWidget::changeEvent ().

void QTabWidget:: clear ()

移除所有頁麵,但不刪除它們。調用此函數相當於調用 removeTab () 直到選項卡 Widget 為空。

QWidget *QTabWidget:: cornerWidget ( Qt::Corner corner = Qt::TopRightCorner) const

返迴 Widget 展示在 corner 對於選項卡小部件,或 0。

另請參閱 setCornerWidget ().

[signal] void QTabWidget:: currentChanged ( int index )

此信號被發射每當當前頁麵索引改變時。參數是新的當前頁麵 index 位置或 -1,若沒有新的 (例如:若沒有 Widget 在 QTabWidget )

注意: 通知程序信號對於特性 currentIndex .

另請參閱 currentWidget () 和 currentIndex .

QWidget *QTabWidget:: currentWidget () const

返迴由選項卡對話框所顯示的目前頁麵指針。選項卡對話框會盡力確保此值從不為 0 (但若足夠努力,可以)。

另請參閱 currentIndex () 和 setCurrentWidget ().

[override virtual protected] bool QTabWidget:: event ( QEvent * ev )

重實現自 QWidget::event ().

[override virtual] bool QTabWidget:: hasHeightForWidth () const

重實現自 QWidget::hasHeightForWidth ().

[override virtual] int QTabWidget:: heightForWidth ( int width ) const

重實現自 QWidget::heightForWidth ().

int QTabWidget:: indexOf ( QWidget * w ) const

返迴頁麵占據的索引位置由 Widget w ,或 -1 若找不到 Widget。

[protected] void QTabWidget:: initStyleOption ( QStyleOptionTabWidgetFrame * option ) const

初始化 option 采用值來自此 QTabWidget 。此方法對子類是有用的,當需要 QStyleOptionTabWidgetFrame ,但不希望自己填充所有信息。

另請參閱 QStyleOption::initFrom () 和 QTabBar::initStyleOption ().

int QTabWidget:: insertTab ( int index , QWidget * page , const QString & label )

插入選項卡采用給定 label and page 到選項卡小部件在指定 index ,並返迴選項卡欄中的插入選項卡索引。所有權對於 page 被傳遞給 QTabWidget .

標簽顯示在選項卡中且外觀可能有所不同,從屬選項卡小部件配置。

若選項卡的 label 包含 & 和號,緊跟和號後的字母將用作選項卡快捷方式,如:若標簽為 Bro&wse,則 Alt+W 將變為快捷方式 (聚焦移至此選項卡)。

index 超齣範圍,隻需追加選項卡。否則,將其插入在指定位置。

QTabWidget 為空在調用此函數之前,新頁麵變為當前頁麵。在 <= 當前索引的索引處插入新選項卡將遞增當前索引,但保持當前頁麵。

注意: 若之後調用 insertTab() 在 show (),布局係統將試著調節其小部件層次結構改變,且可能導緻閃爍。為防止這種情況,可以設置 QWidget::updatesEnabled 特性為 false 在改變前;記得設置特性為 true 當改變完成後,使小部件再次接收描繪事件。

另請參閱 addTab ().

int QTabWidget:: insertTab ( int index , QWidget * page , const QIcon & icon , const QString & label )

這是重載函數。

插入選項卡采用給定 label , page ,和 icon 到選項卡小部件在指定 index ,並返迴選項卡欄中的插入選項卡索引。所有權對於 page 被傳遞給 QTabWidget .

此函數如同 insertTab (),但具有額外 icon .

bool QTabWidget:: isTabEnabled ( int index ) const

返迴 true 若頁麵在位置 index 被啓用;否則返迴 false .

另請參閱 setTabEnabled () 和 QWidget::isEnabled ().

[override virtual protected] void QTabWidget:: keyPressEvent ( QKeyEvent * e )

重實現自 QWidget::keyPressEvent ().

[override virtual] QSize QTabWidget:: minimumSizeHint () const

重實現自 QWidget::minimumSizeHint ().

返迴選項卡 Widget 的適用最小尺寸。

[override virtual protected] void QTabWidget:: paintEvent ( QPaintEvent * event )

重實現自 QWidget::paintEvent ().

描繪選項卡 Widget 的選項卡欄為響應描繪 event .

void QTabWidget:: removeTab ( int index )

移除選項卡,在位置 index 從此 Widget 堆棧。頁麵 Widget 本身未被刪除。

另請參閱 addTab () 和 insertTab ().

[override virtual protected] void QTabWidget:: resizeEvent ( QResizeEvent * e )

重實現自 QWidget::resizeEvent ().

void QTabWidget:: setCornerWidget ( QWidget * widget , Qt::Corner corner = Qt::TopRightCorner)

設置給定 widget 以展示在指定 corner 對於選項卡小部件。小部件幾何體的確定是基於 Widget 的 sizeHint () 和 style ().

僅水平元素的 corner 會被使用。

傳遞 0 不展示角落 Widget。

任何先前設置的角落 Widget 均被隱藏。

將刪除這裏設置的所有 Widget 當銷毀選項卡小部件時,除非在設置某些其它角落 Widget (或 0) 後單獨重設 Widget 父級。

注意:角落小部件被設計為 North and South 選項卡位置;其它已知取嚮工作不正確。

另請參閱 cornerWidget () 和 setTabPosition ().

[slot] void QTabWidget:: setCurrentWidget ( QWidget * widget )

使 widget 當前小部件。 widget 使用的必須是在此選項卡 Widget 中的頁麵。

另請參閱 addTab (), setCurrentIndex (),和 currentWidget ().

[protected] void QTabWidget:: setTabBar ( QTabBar * tb )

替換對話框的 QTabBar 頭采用選項卡欄 tb 。注意,這必須被調用 before 任何選項卡被添加,或行為不確定。

另請參閱 tabBar ().

void QTabWidget:: setTabEnabled ( int index , bool enable )

enable 為 true,頁麵在位置 index 被啓用;否則頁麵在位置 index 被禁用。頁麵選項卡被適當重新繪製。

QTabWidget 使用 QWidget::setEnabled () 在內部,而不是保持單獨標誌。

注意,即使選項卡/頁麵被禁用也可能可見。若頁麵已經可見, QTabWidget 不會隱藏它;若所有頁麵被禁用, QTabWidget 將展示它們之一。

另請參閱 isTabEnabled () 和 QWidget::setEnabled ().

void QTabWidget:: setTabIcon ( int index , const QIcon & icon )

設置 icon 為選項卡在位置 index .

另請參閱 tabIcon ().

void QTabWidget:: setTabText ( int index , const QString & label )

定義新的 label 為頁麵,在位置 index 的選項卡。

若提供的文本包含 & 和號字符,會為它自動創建快捷方式。緊跟 & 之後的字符將被用作快捷鍵。任何先前快捷方式會被覆寫或清零,若文本尚未定義快捷方式。見 QShortcut 文檔編製瞭解細節 (要顯示實際和號,使用 &&)。

另請參閱 tabText ().

void QTabWidget:: setTabToolTip ( int index , const QString & tip )

設置選項卡工具提示為頁麵,在位置 index to tip .

另請參閱 tabToolTip ().

void QTabWidget:: setTabWhatsThis ( int index , const QString & text )

設置 What's This 幫助文本為頁麵,在位置 index to text .

該函數在 Qt 4.1 引入。

另請參閱 tabWhatsThis ().

[override virtual protected] void QTabWidget:: showEvent ( QShowEvent * )

重實現自 QWidget::showEvent ().

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

重實現自 QWidget::sizeHint ().

QTabBar *QTabWidget:: tabBar () const

返迴當前 QTabBar .

另請參閱 setTabBar ().

[signal] void QTabWidget:: tabBarClicked ( int index )

此信號會被發射,當用戶點擊選項卡在 index .

index 引用選項卡點擊,或 -1 若光標下沒有選項卡。

該函數在 Qt 5.2 引入。

[signal] void QTabWidget:: tabBarDoubleClicked ( int index )

此信號被發射,當用戶雙擊的選項卡在 index .

index 是點擊選項卡索引,或 -1 若光標下沒有選項卡。

該函數在 Qt 5.2 引入。

[signal] void QTabWidget:: tabCloseRequested ( int index )

此信號被發射當點擊選項卡關閉按鈕時。 index 是應被移除的索引。

該函數在 Qt 4.5 引入。

另請參閱 setTabsClosable ().

QIcon QTabWidget:: tabIcon ( int index ) const

返迴頁麵選項卡圖標,在位置 index .

另請參閱 setTabIcon ().

[virtual protected] void QTabWidget:: tabInserted ( int index )

調用此虛擬處理程序,在添加或插入新選項卡後於位置 index .

另請參閱 tabRemoved ().

[virtual protected] void QTabWidget:: tabRemoved ( int index )

此虛擬處理程序被調用,在移除選項卡後從位置 index .

另請參閱 tabInserted ().

QString QTabWidget:: tabText ( int index ) const

返迴頁麵選項卡標簽文本在位置 index .

另請參閱 setTabText ().

QString QTabWidget:: tabToolTip ( int index ) const

返迴頁麵選項卡工具提示在位置 index 或空字符串若未設置工具提示。

另請參閱 setTabToolTip ().

QString QTabWidget:: tabWhatsThis ( int index ) const

返迴頁麵 What's This 幫助文本在位置 index ,或空字符串若未設置幫助文本。

該函數在 Qt 4.1 引入。

另請參閱 setTabWhatsThis ().

QWidget *QTabWidget:: widget ( int index ) const

返迴選項卡頁麵在索引位置 index 或 0 若 index 超齣範圍。