- PyQt 教程
- PyQt - 首頁
- PyQt - 簡介
- PyQt - 環境搭建
- PyQt - Hello World
- PyQt - 主要類
- PyQt - 使用 Qt Designer
- PyQt - 元物件
- PyQt 訊號與槽
- PyQt - 訊號和槽
- PyQt - 支援和訊號
- PyQt - 未繫結和已繫結訊號
- PyQt - 使用 PyQtSignal 建立新的訊號
- PyQt - 連線、斷開和發射訊號
- PyQt - 槽裝飾器
- PyQt - 槽連線
- PyQt 佈局
- PyQt - 佈局管理
- PyQt - QBoxLayout
- PyQt - QGridLayout
- PyQt - QFormLayout
- PyQt - QHBoxLayout
- PyQt - QVBoxLayout
- PyQt - QStackedLayout
- PyQt - QGraphicsGridLayout
- PyQt - QGraphicsAnchorLayout
- PyQt - QGraphicsLayout
- PyQt - QGraphicsLinearLayout
- PyQt 基本控制元件
- PyQt - 基本控制元件
- PyQt - QLabel 控制元件
- PyQt - QLineEdit 控制元件
- PyQt - QPushButton 控制元件
- PyQt - QRadioButton 控制元件
- PyQt - QCheckBox 控制元件
- PyQt - QComboBox 控制元件
- PyQt - QSpinBox 控制元件
- PyQt - QMessageBox
- PyQt - QDialogButtonBox 控制元件
- PyQt - QFontComboBox 控制元件
- PyQt - QDoubleSpinBox 控制元件
- PyQt - QToolBox 控制元件
- PyQt - QDialog 類
- PyQt - QMessageBox
- PyQt - 多文件介面
- PyQt - 拖放操作
- PyQt 繪圖 API
- PyQt - 繪圖 API
- PyQt 資料庫
- PyQt - 資料庫處理
- PyQt 核心知識
- PyQt - BrushStyle 常量
- PyQt - QClipboard
- PyQt - QPixmap 類
- PyQt 有用資源
- PyQt - 快速指南
- PyQt - 有用資源
- PyQt - 討論
PyQt - QTab Widget
如果表單欄位過多無法同時顯示,可以將它們排列在選項卡式視窗的各個選項卡下。QTabWidget 提供了一個選項卡欄和一個頁面區域。第一個選項卡下的頁面顯示,其他頁面隱藏。使用者可以透過點選所需的選項卡來檢視任何頁面。
以下是 QTabWidget 類的常用方法:
以下是 QTabWidget 最常用的方法。
| 序號 | 方法及描述 |
|---|---|
| 1 |
addTab() 新增與小部件頁面關聯的選項卡 |
| 2 |
insertTab() 在所需位置插入帶有頁面的選項卡 |
| 3 |
removeTab() 刪除給定索引處的選項卡 |
| 4 |
setCurrentIndex() 將當前可見頁面的索引設定為當前索引 |
| 5 |
setCurrentWidget() 將可見頁面設定為當前頁面 |
| 6 |
setTabBar() 設定小部件的選項卡欄 |
| 7 |
setTabPosition() 選項卡的位置由以下值控制 QTabWidget.North 頁面上方 QTabWidget.South 頁面下方 QTabWidget.West 頁面左側 QTabWidget.East 頁面右側 |
| 8 |
setTabText() 定義與選項卡索引關聯的標籤 |
以下訊號與 QTabWidget 物件相關聯:
| 序號 | 方法及描述 |
|---|---|
| 1 |
currentChanged() 每當當前頁面索引更改時 |
| 2 |
tabClosedRequested() 當點選選項卡上的關閉按鈕時 |
示例
在以下示例中,表單的內容被分為三個類別。每組小部件在不同的選項卡下顯示。
頂級視窗本身就是一個 QTabWidget。在其中添加了三個選項卡。
self.addTab(self.tab1,"Tab 1") self.addTab(self.tab2,"Tab 2") self.addTab(self.tab3,"Tab 3")
每個選項卡都顯示使用佈局設計的子表單。選項卡文字透過語句更改。
self.setTabText(0,"Contact Details") self.setTabText(1,"Personal Details") self.setTabText(2,"Education Details")
完整程式碼如下:
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class tabdemo(QTabWidget):
def __init__(self, parent = None):
super(tabdemo, self).__init__(parent)
self.tab1 = QWidget()
self.tab2 = QWidget()
self.tab3 = QWidget()
self.addTab(self.tab1,"Tab 1")
self.addTab(self.tab2,"Tab 2")
self.addTab(self.tab3,"Tab 3")
self.tab1UI()
self.tab2UI()
self.tab3UI()
self.setWindowTitle("tab demo")
def tab1UI(self):
layout = QFormLayout()
layout.addRow("Name",QLineEdit())
layout.addRow("Address",QLineEdit())
self.setTabText(0,"Contact Details")
self.tab1.setLayout(layout)
def tab2UI(self):
layout = QFormLayout()
sex = QHBoxLayout()
sex.addWidget(QRadioButton("Male"))
sex.addWidget(QRadioButton("Female"))
layout.addRow(QLabel("Sex"),sex)
layout.addRow("Date of Birth",QLineEdit())
self.setTabText(1,"Personal Details")
self.tab2.setLayout(layout)
def tab3UI(self):
layout = QHBoxLayout()
layout.addWidget(QLabel("subjects"))
layout.addWidget(QCheckBox("Physics"))
layout.addWidget(QCheckBox("Maths"))
self.setTabText(2,"Education Details")
self.tab3.setLayout(layout)
def main():
app = QApplication(sys.argv)
ex = tabdemo()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
以上程式碼產生以下輸出:
廣告