本篇主要介绍 QTabWidget的用法, 也会顺带介绍 QRadioButton 的分组, 以及 复合窗口部件的创建 。
Tab标签页窗口部件(QTabWidget)可以有多个”页面“(page),每个页面包含一个Tab标签页标题(可含图标),和若干子窗口部件(要么是单个部件,要么由它们组成一个复合窗口部件)。
QRadioButton 是一个可以“开”和“关”的按钮。 拥有同一父窗口部件,或者属于同一 button group 的 按钮,在同一时刻只有一个能处于 “开”的状态。
具体的运用详见代码:
import sysfrom PyQt5.QtWidgets import *from PyQt5.QtGui import QIcon#from PyQt5.QtCore import Qt, QDate, QTime, QDateTime, QTimer#class Widget(QMainWindow): 缩进def __init__(self, parent = None):缩进缩进super().__init__(parent)缩进缩进self.setWindowTitle("Tab 部件演示")缩进缩进self.textEdit = QTextEdit()缩进缩进#self.textEdit.setFixedHeight(200)缩进缩进self.textEdit.setText(" Input something here:")缩进缩进self.textEdit.selectAll()缩进缩进self.tabWidget = QTabWidget()缩进缩进#设置tab 标签在页面的位置缩进缩进#self.tabWidget.setTabPosition(QTabWidget.North) #默认 北 (0,上)缩进缩进self.tabWidget.setTabPosition(QTabWidget.South) #南(1,下)缩进缩进#self.tabWidget.setTabPosition(QTabWidget.West) #西(2,左)缩进缩进#self.tabWidget.setTabPosition(QTabWidget.East) # 东(3,右)缩进缩进#设置 tab 标签的形状缩进缩进#self.tabWidget.setTabShape (QTabWidget.Rounded)# 圆角,0,默认缩进缩进self.tabWidget.setTabShape (QTabWidget.Triangular)# 三角形,1缩进缩进self.tabWidget.addTab(self.create_widget1(), "第一页")缩进缩进#还可以添加图标缩进缩进self.tabWidget.addTab(self.textEdit, QIcon("ICON/smile.png"), "第二页")缩进缩进self.tabWidget.currentChanged[int].connect(self.on_currentChanged)缩进缩进self.setCentralWidget(self.tabWidget)#缩进def create_widget1(self):缩进缩进#创建自定义复合窗口部件缩进缩进widget = QWidget()#step1缩进缩进gLayout = QGridLayout()缩进缩进 label1 = QLabel("姓名:")缩进缩进lineEdit1 = QLineEdit()缩进缩进label1.setBuddy(lineEdit1)缩进缩进label2 = QLabel("性别:")缩进缩进buttonGroup = QButtonGroup()缩进缩进radioButton1 = QRadioButton("男")缩进缩进 radioButton2 = QRadioButton("女")缩进缩进radioButton2.setChecked(True)缩进缩进#同一button group 或同一 父窗体的 为一个分组,多选一缩进缩进buttonGroup.addButton(radioButton1)缩进缩进buttonGroup.addButton(radioButton2)缩进缩进gLayout.addWidget(label1, 0, 0)缩进缩进gLayout.addWidget(lineEdit1, 0, 1, 1, 2)缩进缩进gLayout.addWidget(label2,1,0)缩进缩进gLayout.addWidget(radioButton1, 1, 1)缩进缩进gLayout.addWidget(radioButton2, 1, 2)缩进缩进widget.setLayout(gLayout)#step2缩进缩进return widget#缩进def on_currentChanged(self, index):缩进缩进print("current tab index: