The QTabWidget 類提供選項卡式 Widget 堆棧。 更多...
| 頭: | #include <QTabWidget> |
| qmake: | QT += widgets |
| 繼承: | QWidget |
| enum | TabPosition { North, South, West, East } |
| enum | TabShape { Rounded, Triangular } |
|
|
| QTabWidget (QWidget * parent = Q_NULLPTR) | |
| ~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 ( TabPosition ) |
| void | setTabShape (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 |
| TabPosition | tabPosition () const |
| 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 |
| virtual int | heightForWidth (int width ) const |
| virtual QSize | minimumSizeHint () const |
| virtual QSize | sizeHint () const |
| void | setCurrentIndex (int index ) |
| void | setCurrentWidget (QWidget * widget ) |
| void | currentChanged (int index ) |
| void | tabBarClicked (int index ) |
| void | tabBarDoubleClicked (int index ) |
| void | tabCloseRequested (int index ) |
| void | initStyleOption (QStyleOptionTabWidgetFrame * option ) const |
| void | setTabBar (QTabBar * tb ) |
| virtual void | tabInserted (int index ) |
| virtual void | tabRemoved (int index ) |
| virtual void | changeEvent (QEvent * ev ) |
| virtual bool | event (QEvent * ev ) |
| virtual void | keyPressEvent (QKeyEvent * e ) |
| virtual void | paintEvent (QPaintEvent * event ) |
| virtual void | resizeEvent (QResizeEvent * e ) |
| virtual void | showEvent ( QShowEvent * ) |
The QTabWidget 類提供選項卡式 Widget 堆棧。
選項卡小部件提供選項卡欄 (見 QTabBar ) 和頁麵區域用於顯示每選項卡相關頁麵。默認情況下,選項卡欄展示在頁麵區域上方,但有不同可用配置 (見 TabPosition )。每選項卡關聯不同 Widget (稱為頁麵)。頁麵區域僅展示當前頁麵。所有其它頁麵被隱藏。用戶可以展示不同頁麵通過點擊其選項卡或按下其 Alt+ letter 快捷鍵若有的話。
平常方式是使用 QTabWidget 是做以下:
選項卡位置的定義通過 tabPosition ,它們的形狀通過 tabShape .
信號 currentChanged () 發射,當用戶選擇頁麵時。
當前頁麵索引可用作 currentIndex (),當前頁麵 Widget 采用 currentWidget ()。可以檢索具有給定索引的頁麵小部件指針使用 widget (),和可以查找小部件的位置索引采用 indexOf ()。使用 setCurrentWidget () 或 setCurrentIndex () 以展示特定頁麵。
可以更改選項卡的文本和圖標使用 setTabText () 或 setTabIcon ()。可以移除選項卡及其關聯頁麵采用 removeTab ().
可以隨時啓用或禁用每選項卡 (見 setTabEnabled ())。若選項卡被啓用,將正常繪製選項卡文本且用戶可以選擇該選項卡。若被禁用,將以不同方式繪製選項卡且用戶無法選擇該選項卡。注意,即使選項卡被禁用,頁麵仍可見 (例如:若所有選項卡被禁用)。
選項卡小部件可以是拆分復雜對話框的很好方式。另一方式是使用 QStackedWidget 提供在頁麵之間導航的一些手段,例如 QToolBar 或 QListWidget .
大多數功能在 QTabWidget 的提供是通過 QTabBar (在頂部,提供選項卡) 和 QStackedWidget (大部分區域,組織各個頁麵)。
另請參閱 QTabBar , QStackedWidget , QToolBox ,和 選項卡對話框範例 .
此枚舉類型定義在哪裏 QTabWidget 繪製選項卡行:
| 常量 | 值 | 描述 |
|---|---|---|
QTabWidget::North
|
0
|
選項卡繪製在頁麵上方。 |
QTabWidget::South
|
1
|
選項卡繪製在頁麵下方。 |
QTabWidget::West
|
2
|
選項卡繪製在頁麵左側。 |
QTabWidget::East
|
3
|
選項卡繪製在頁麵右側。 |
此枚舉類型定義選項卡的形狀:
| 常量 | 值 | 描述 |
|---|---|---|
QTabWidget::Rounded
|
0
|
選項卡采用圓角外觀繪製。這是默認形狀。 |
QTabWidget::Triangular
|
1
|
選項卡采用三角形外觀繪製。 |
此特性保持選項卡欄的選項卡數
默認情況下,此特性包含 0 值。
訪問函數:
| int | count () const |
此特性保持當前選項卡頁麵的索引位置
當前索引為 -1,若沒有當前 Widget。
默認情況下,此特性包含 -1 值,因為小部件最初沒有選項卡。
訪問函數:
| int | currentIndex () const |
| void | setCurrentIndex (int index ) |
通知程序信號:
| void | currentChanged (int index ) |
此特性保持選項卡 Widget 是否以適於文檔頁麵的模式進行渲染。這如同 macOS 文檔模式。
當設置此特性時,不渲染選項卡小部件框架。此模式用於展示文檔類型頁麵 (頁麵涵蓋大部分選項卡小部件區域)。
該特性在 Qt 4.5 引入。
訪問函數:
| bool | documentMode () const |
| void | setDocumentMode (bool set ) |
另請參閱 elideMode , QTabBar::documentMode , QTabBar::usesScrollButtons ,和 QStyle::SH_TabBar_PreferNoArrows .
如何省略標簽欄文本
此特性控製如何省略項,當沒有足夠空間展示它們 (對於給定選項卡欄尺寸) 時。
默認情況下,值從屬樣式。
該特性在 Qt 4.2 引入。
訪問函數:
| Qt::TextElideMode | elideMode () const |
| void | setElideMode ( Qt::TextElideMode ) |
另請參閱 QTabBar::elideMode , usesScrollButtons ,和 QStyle::SH_TabBar_ElideMode .
此特性保持選項卡欄的圖標尺寸
默認值從屬樣式。這是圖標將擁有的最大尺寸。不會按比例放大圖標,若尺寸較小。
該特性在 Qt 4.2 引入。
訪問函數:
| QSize | iconSize () const |
| void | setIconSize (const QSize & size ) |
另請參閱 QTabBar::iconSize .
此特性保持用戶是否可以在選項卡欄區域內,移動選項卡。
默認情況下,此特性為
false
;
該特性在 Qt 4.5 引入。
訪問函數:
| bool | isMovable () const |
| void | setMovable (bool movable ) |
若為 true,自動隱藏選項卡欄,當包含少於 2 個選項卡時。
默認情況下,此特性為 false。
該特性在 Qt 5.4 引入。
訪問函數:
| bool | tabBarAutoHide () const |
| void | setTabBarAutoHide (bool enabled ) |
另請參閱 QWidget::visible .
此特性保持此選項卡小部件中選項卡的位置
此特性的可能值,描述通過 TabPosition 枚舉。
默認情況下,此特性被設為 North .
訪問函數:
| TabPosition | tabPosition () const |
| void | setTabPosition ( TabPosition ) |
另請參閱 TabPosition .
此特性保持此選項卡小部件中選項卡的形狀
此特性的可能值, QTabWidget::Rounded (默認) 或 QTabWidget::Triangular .
訪問函數:
| TabShape | tabShape () const |
| void | setTabShape (TabShape s ) |
另請參閱 TabShape .
此特性保持是否將關閉按鈕自動添加到每個選項卡。
該特性在 Qt 4.5 引入。
訪問函數:
| bool | tabsClosable () const |
| void | setTabsClosable (bool closeable ) |
另請參閱 QTabBar::tabsClosable ().
此特性保持選項卡欄是否應使用捲動按鈕,當包含多個選項卡時。
當選項卡欄選項卡太多時 (對於其大小),選項卡欄可以選擇展開其大小,或添加按鈕以允許捲動選項卡。
默認情況下,值從屬樣式。
該特性在 Qt 4.2 引入。
訪問函數:
| bool | usesScrollButtons () const |
| void | setUsesScrollButtons (bool useButtons ) |
另請參閱 elideMode , QTabBar::usesScrollButtons ,和 QStyle::SH_TabBar_PreferNoArrows .
構造選項卡式 Widget 采用父級 parent .
銷毀選項卡式 Widget。
添加選項卡采用給定 page and label 到選項卡小部件,並返迴選項卡欄中選項卡索引。
若選項卡的 label 包含 & 和號,緊跟和號後的字母將用作選項卡快捷方式,如:若標簽為 Bro&wse,則 Alt+W 將變為快捷方式 (聚焦移至此選項卡)。
注意: 若調用 addTab() 後於 show (),布局係統將試著調節其小部件層次結構改變,且可能導緻閃爍。為防止這種情況,可以設置 QWidget::updatesEnabled 特性為 false 在改變前;記得設置特性為 true 當改變完成後,使小部件再次接收描繪事件。
另請參閱 insertTab ().
這是重載函數。
添加選項卡采用給定 page , icon ,和 label 到選項卡小部件,並返迴選項卡欄中選項卡索引。
此函數如同 addTab (),但具有額外 icon .
[virtual protected]
void
QTabWidget::
changeEvent
(
QEvent
*
ev
)
重實現自 QWidget::changeEvent ().
移除所有頁麵,但不刪除它們。調用此函數相當於調用 removeTab () 直到選項卡 Widget 為空。
返迴 Widget 展示在 corner 對於選項卡小部件,或 0。
另請參閱 setCornerWidget ().
[signal]
void
QTabWidget::
currentChanged
(
int
index
)
此信號被發射每當當前頁麵索引改變時。參數是新的當前頁麵 index 位置或 -1,若沒有新的 (例如:若沒有 Widget 在 QTabWidget )
注意: 通知程序信號對於特性 currentIndex .
另請參閱 currentWidget () 和 currentIndex .
返迴由選項卡對話框所顯示的目前頁麵指針。選項卡對話框會盡力確保此值從不為 0 (但若足夠努力,可以)。
另請參閱 currentIndex () 和 setCurrentWidget ().
[virtual protected]
bool
QTabWidget::
event
(
QEvent
*
ev
)
重實現自 QObject::event ().
[虛擬]
bool
QTabWidget::
hasHeightForWidth
() const
重實現自 QWidget::hasHeightForWidth ().
[虛擬]
int
QTabWidget::
heightForWidth
(
int
width
) const
重實現自 QWidget::heightForWidth ().
返迴頁麵占據的索引位置由 Widget w ,或 -1 若找不到 Widget。
[protected]
void
QTabWidget::
initStyleOption
(
QStyleOptionTabWidgetFrame
*
option
) const
初始化 option 采用值來自此 QTabWidget 。此方法對子類是有用的,當需要 QStyleOptionTabWidgetFrame ,但不希望自己填充所有信息。
另請參閱 QStyleOption::initFrom () 和 QTabBar::initStyleOption ().
插入選項卡采用給定 label and page 到選項卡小部件在指定 index ,和返迴選項卡欄中的插入選項卡索引。
標簽顯示在選項卡中且外觀可能有所不同,從屬選項卡小部件配置。
若選項卡的 label 包含 & 和號,緊跟和號後的字母將用作選項卡快捷方式,如:若標簽為 Bro&wse,則 Alt+W 將變為快捷方式 (聚焦移至此選項卡)。
若 index 超齣範圍,隻需追加選項卡。否則,將其插入在指定位置。
若 QTabWidget 為空在調用此函數之前,新頁麵變為當前頁麵。在 <= 當前索引的索引處插入新選項卡將遞增當前索引,但保持當前頁麵。
注意: 若之後調用 insertTab() 在 show (),布局係統將試著調節其小部件層次結構改變,且可能導緻閃爍。為防止這種情況,可以設置 QWidget::updatesEnabled 特性為 false 在改變前;記得設置特性為 true 當改變完成後,使小部件再次接收描繪事件。
另請參閱 addTab ().
這是重載函數。
插入選項卡采用給定 label , page ,和 icon 到選項卡小部件在指定 index ,和返迴選項卡欄中的插入選項卡索引。
此函數如同 insertTab (),但具有額外 icon .
返迴
true
若頁麵在位置
index
被啓用;否則返迴
false
.
另請參閱 setTabEnabled () 和 QWidget::isEnabled ().
[virtual protected]
void
QTabWidget::
keyPressEvent
(
QKeyEvent
*
e
)
重實現自 QWidget::keyPressEvent ().
[虛擬]
QSize
QTabWidget::
minimumSizeHint
() const
重實現自 QWidget::minimumSizeHint ().
返迴選項卡 Widget 的適用最小尺寸。
[virtual protected]
void
QTabWidget::
paintEvent
(
QPaintEvent
*
event
)
重實現自 QWidget::paintEvent ().
描繪選項卡 Widget 的選項卡欄為響應描繪 event .
移除選項卡,在位置 index 從此 Widget 堆棧。頁麵 Widget 本身未被刪除。
另請參閱 addTab () 和 insertTab ().
[virtual protected]
void
QTabWidget::
resizeEvent
(
QResizeEvent
*
e
)
重實現自 QWidget::resizeEvent ().
設置給定 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 ().
若 enable 為 true,頁麵在位置 index 被啓用;否則頁麵在位置 index 被禁用。頁麵選項卡被適當重新繪製。
QTabWidget 使用 QWidget::setEnabled () 在內部,而不是保持單獨標誌。
注意,即使選項卡/頁麵被禁用也可能可見。若頁麵已經可見, QTabWidget 不會隱藏它;若所有頁麵被禁用, QTabWidget 將展示它們之一。
另請參閱 isTabEnabled () 和 QWidget::setEnabled ().
這是重載函數。
設置 icon 為選項卡在位置 index .
另請參閱 tabIcon ().
定義新的 label 為頁麵,在位置 index 的選項卡。
若提供的文本包含 & 和號字符,會為它自動創建快捷方式。緊跟 & 之後的字符將被用作快捷鍵。任何先前快捷方式會被覆寫或清零,若文本尚未定義快捷方式。見 QShortcut 文檔編製瞭解細節 (要顯示實際和號,使用 &&)。
另請參閱 tabText ().
設置選項卡工具提示為頁麵,在位置 index to tip .
另請參閱 tabToolTip ().
設置 What's This 幫助文本為頁麵,在位置 index to text .
該函數在 Qt 4.1 引入。
另請參閱 tabWhatsThis ().
[virtual protected]
void
QTabWidget::
showEvent
(
QShowEvent *
)
重實現自 QWidget::showEvent ().
[虛擬]
QSize
QTabWidget::
sizeHint
() const
重實現自 QWidget::sizeHint ().
返迴當前 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 ().
返迴頁麵選項卡圖標,在位置 index .
另請參閱 setTabIcon ().
[virtual protected]
void
QTabWidget::
tabInserted
(
int
index
)
調用此虛擬處理程序,在添加或插入新選項卡後於位置 index .
另請參閱 tabRemoved ().
[virtual protected]
void
QTabWidget::
tabRemoved
(
int
index
)
此虛擬處理程序被調用,在移除選項卡後從位置 index .
另請參閱 tabInserted ().
返迴頁麵選項卡標簽文本在位置 index .
另請參閱 setTabText ().
返迴頁麵選項卡工具提示在位置 index 或空字符串若未設置工具提示。
另請參閱 setTabToolTip ().
返迴頁麵 What's This 幫助文本在位置 index ,或空字符串若未設置幫助文本。
該函數在 Qt 4.1 引入。
另請參閱 setTabWhatsThis ().
返迴選項卡頁麵在索引位置 index 或 0 若 index 超齣範圍。