PyQt5 標簽頁控件(QTabWidget)的使用


tab頁控件

  • QTabWidget 類提供了一堆標簽式小部件,如圖所示


  • 選項卡小部件提供一個選項卡欄(請參閱QTabBar)和一個用於顯示與每個選項卡相關的頁面的“頁面區域”。默認情況下,標簽欄顯示在頁面區域上方,但有不同的配置可用(請參見TabPosition)。

  • 每個選項卡都與一個不同的小部件(稱為頁面)相關聯。只有當前頁面顯示在頁面區域中 ;所有其他頁面都隱藏起來。用戶可以通過單擊其選項卡或按Alt +字母快捷鍵(如果有)來顯示不同的頁面

  1. 使用 QTabWidget 的正常方法是執行以下操作:

    • 創建一個 QTabWidget
    • 為選項卡對話框中的每個頁面創建一個 QWidget,但不要為它們指定父窗口小部件
    • 將子窗口小部件插入到頁面窗口小部件中,使用布局為其定位。
    • 調用addTab()insertTab()將頁面小部件放入選項卡小部件,為每個選項卡提供一個帶有可選鍵盤快捷鍵的合適標簽
  2. 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)

  1. 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)

  1. 信號 currentChanged() 是在用戶選擇頁面時發出的

tabwidget.currentChanged.connect(function)

  1. 其他小Tips
  • 當前頁面索引可使用 currentIndex() 獲得,當前頁面小部件可使用 currentWidget() 獲得。

  • 您可以使用 widget() 檢索指向給定索引的頁面小部件,並可以使用 indexOf() 來查找小部件的索引位置。

  • 使用 setCurrentWidget()setCurrentIndex()來顯示特定的頁面

  • 可以使用 setTabText()setTabIcon() 更改選項卡的文本和圖標

  • 可以使用 removeTab() 刪除選項卡及其關聯的頁面


  • 每個選項卡可以在任何時間啟用或禁用(請參閱setTabEnabled())。如果啟用選項卡,標簽文本將正常繪制,用戶可以選擇該選項卡。如果它被禁用,則選項卡以不同的方式繪制,並且用戶不能選擇該選項卡

  • 選項卡小部件可以是分離復雜對話框的一種非常好的方法。另一種方法是使用QStackedWidget,為其提供一些頁面之間的導航方式,例如QToolBar或QListWidget


  • QTabWidget中的大部分功能都由QTabBar(位於頂部,提供選項卡)和QStackedWidget(大部分區域,組織各個頁面)提供。

  • 部分來自:知乎


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM