- 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()
以上代码产生以下输出:
广告