高级界面控件
二、容器
- 容器,为程序太多控件导致一个窗口放不下,或者一个窗口装载了太多控件而不美观的问题,提供了解决措施。
1、QTabWidget
- QTabWidget 类提供了一个选项卡式页面控件,类似于浏览器的形式,单击不同的选项卡可以看到不同的页面。
- QTabWidget 类常用方法如下:
方法 描述 addTab() 将一个控件添加到 Tab 控件的选项卡中 insertTab() 将一个 Tab 控件的选项卡插入到指定位置 removeTab() 根据指定的索引删除 Tab 控件 setCurrentIndex() 设置当前可见的选项卡所在的索引 setCurrentWidget() 设置当前可见的页面 setTabBar() 设置选项卡栏的小控件 setTabPosition() 设置选项卡的位置 setTabText() 定义 Tab 选项卡的显示值 - setTabPosition() 的可选参数如下:
值 含义 QTabWidget.North 显示在页面的上方 QTabWidget.South 显示在页面的下方 QTabWidget.West 显示在页面的左侧 QTabWidget.East 显示在页面的右侧 - QTabWidget 类的常用信号有:currentChanged,表示当切换当前页面时触发该信号。
- QTabWidget 使用示例如下:
# -*- coding:utf-8 -*- # Time : 2019/08/26 下午 5:36 # Author : 御承扬 # e-mail:2923616405@qq.com # project: PyQt5 # File : QTabWidgetTest.py # @software: PyCharm import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * class TabDemo(QTabWidget): def __init__(self, parent=None): super(TabDemo, self).__init__(parent) self.setWindowTitle("TabWidget 例子") self.setWindowIcon(QIcon("./images/Python2.ico")) self.resize(340, 150) 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() def tab1UI(self): layout = QFormLayout() layout.addRow("姓名", QLineEdit()) layout.addRow("地址", QLineEdit()) self.setTabText(0, "联系方式") self.tab1.setLayout(layout) def tab2UI(self): layout = QFormLayout() sex = QHBoxLayout() sex.addWidget(QRadioButton("男")) sex.addWidget(QRadioButton("女")) layout.addRow(QLabel("性别"), sex) layout.addRow("生日", QLineEdit()) self.setTabText(1, "个人详细信息") self.tab2.setLayout(layout) def tab3UI(self): layout = QHBoxLayout() layout.addWidget(QLabel("科目")) layout.addWidget(QCheckBox("物理")) layout.addWidget(QCheckBox("高数")) self.setTabText(2, "受教育程度") self.tab3.setLayout(lay