tab頁控件
- QTabWidget 類提供了一堆標簽式小部件,如圖所示
-
選項卡小部件提供一個選項卡欄(請參閱QTabBar)和一個用於顯示與每個選項卡相關的頁面的“頁面區域”。默認情況下,標簽欄顯示在頁面區域上方,但有不同的配置可用(請參見TabPosition)。
-
每個選項卡都與一個不同的小部件(稱為頁面)相關聯。只有當前頁面顯示在頁面區域中 ;所有其他頁面都隱藏起來。用戶可以通過單擊其選項卡或按Alt +字母快捷鍵(如果有)來顯示不同的頁面
-
使用 QTabWidget 的正常方法是執行以下操作:
- 創建一個 QTabWidget
- 為選項卡對話框中的每個頁面創建一個 QWidget,但不要為它們指定父窗口小部件
- 將子窗口小部件插入到頁面窗口小部件中,使用布局為其定位。
- 調用addTab()或insertTab()將頁面小部件放入選項卡小部件,為每個選項卡提供一個帶有可選鍵盤快捷鍵的合適標簽
-
QTabWidget 選項卡的位置由 TabPosition 定義,定義了 QTabWidget 在哪里繪制標簽行
- QTabWidget.TabPosition 舉例
常數 | 值 | 描述 |
---|---|---|
QTabWidget.TabPosition.North | 0 | 選項卡繪制在頁面上方,默認值 |
QTabWidget.TabPosition.South | 1 | 標簽在頁面下方繪制 |
QTabWidget.TabPosition.West | 2 | 這些選項卡繪制在頁面的左側 |
QTabWidget.TabPosition.East | 3 | 這些選項卡繪制在頁面的右側 |
tabwidget = QTabWidget(window)
tabwidget.setTabPosition(QTabWidget.TabPosition.West) # 這是其中一種寫法,下面是第二種寫法,也可不寫,默認是在上方
# tabwidget.setTabPosition(0)
tabwidget = QTabWidget(window)
tabwidget.setTabPosition(QTabWidget.TabPosition.South)
# tabwidget.setTabPosition(1)
tabwidget = QTabWidget(window)
tabwidget.setTabPosition(QTabWidget.TabPosition.West)
# tabwidget.setTabPosition(2)
tabwidget = QTabWidget(window)
tabwidget.setTabPosition(QTabWidget.TabPosition.East)
# tabwidget.setTabPosition(3)
- QTabWidget 選項卡的形狀由 TabShape 定義,它定義了選項卡的形狀
- QTabWidget.TabShape 舉例
常數 | 值 | 描述 |
---|---|---|
QTabWidget.TabShape.Rounded | 0 | 這些選項卡以圓角的外觀繪制。這是默認形狀 |
QTabWidget.TabShape.Triangular | 1 | 這些選項卡以三角形外觀繪制 |
tabwidget = QTabWidget(window)
tabwidget.setTabShape(QTabWidget.TabShape.Rounded) # 兩種方式任選其一,這個是默認的
# tabwidget.setTabShape(0)
tabwidget = QTabWidget(window)
tabwidget.setTabShape(QTabWidget.TabShape.Triangular)
# tabwidget.setTabShape(1)
- 信號 currentChanged() 是在用戶選擇頁面時發出的
tabwidget.currentChanged.connect(function)
- 其他小Tips
-
當前頁面索引可使用 currentIndex() 獲得,當前頁面小部件可使用 currentWidget() 獲得。
-
您可以使用 widget() 檢索指向給定索引的頁面小部件,並可以使用 indexOf() 來查找小部件的索引位置。
-
使用 setCurrentWidget() 或 setCurrentIndex()來顯示特定的頁面
-
可以使用 setTabText() 或 setTabIcon() 更改選項卡的文本和圖標
-
可以使用 removeTab() 刪除選項卡及其關聯的頁面
-
每個選項卡可以在任何時間啟用或禁用(請參閱setTabEnabled())。如果啟用選項卡,標簽文本將正常繪制,用戶可以選擇該選項卡。如果它被禁用,則選項卡以不同的方式繪制,並且用戶不能選擇該選項卡
-
選項卡小部件可以是分離復雜對話框的一種非常好的方法。另一種方法是使用QStackedWidget,為其提供一些頁面之間的導航方式,例如QToolBar或QListWidget
-
QTabWidget中的大部分功能都由QTabBar(位於頂部,提供選項卡)和QStackedWidget(大部分區域,組織各個頁面)提供。
-
部分來自:知乎