PySide6-QWidget-Containers


第一部分:QGroupBox —— 带标题的分组边框容器

导入from PySide6.QtWidgets import QGroupBox
QGroupBox 提供一组带标题的边框,常用于将一组相关的控件(特别是互斥的 QRadioButton)在视觉上归类到一个盒子中,提高用户界面的可读性。

🟢 QGroupBox 的核心信号


第二部分:QTabWidget —— 选项卡容器

导入from PySide6.QtWidgets import QTabWidget
QTabWidget 提供多页选项卡切换的容器,在一个界面中隐藏大量信息,通过顶部的标签进行页面切换。

🟢 QTabWidget 的核心信号


第三部分:QStackedWidget —— 堆叠容器(页面切换神器)

导入from PySide6.QtWidgets import QStackedWidget
QStackedWidget 和选项卡类似,但它没有上方那个可视的标签栏。它像一叠卡片一样,同一时刻只能显示一张卡片,非常适合做“向导”或“状态切换”的界面(比如登录成功切换到一个新界面)。

🟢 QStackedWidget 的核心信号

💡 进阶技巧:QStackedWidget 配合 QComboBox 做类似安卓的页面切换

因为没有自带的标签,我们通常用外部下拉框或按钮来控制它的切换。

stacked = QStackedWidget()
combo = QComboBox()
combo.addItem("页面 1")
combo.addItem("页面 2")

# 将下拉框的选择与堆叠窗口绑定
combo.currentIndexChanged.connect(stacked.setCurrentIndex)

第四部分:QScrollArea —— 滚动区域容器

导入from PySide6.QtWidgets import QScrollArea
当一个控件(如巨大的图片或大量的按钮)超出了窗口的显示范围时,将图片放入 QScrollArea 中,它会自动提供横向和纵向的滚动条。


第五部分:QListWidget —— 列表容器

导入from PySide6.QtWidgets import QListWidget, QListWidgetItem
QListWidget 是一个用于展示一列可点击、可选择的条目列表的控件。类似于手机里的设置列表。

🟢 QListWidget 的核心信号

🔵 进阶用法:QListWidgetItem (列表项的深入封装)

列表中的每一项实际上都是 QListWidgetItem 对象。你可以为这个对象绑定隐藏数据、图标,甚至改变它的大小。

item = QListWidgetItem("选项1")
item.setIcon(QIcon("icon.png")) # 加上图标
item.setSizeHint(QSize(50, 50)) # 设置该项的高度为 50
item.setData(Qt.UserRole, "隐藏的ID") # 绑定隐藏数据

list_widget.addItem(item)

# 获取隐藏数据
selected_item = list_widget.currentItem()
print(selected_item.data(Qt.UserRole))

第六部分:QTableWidget —— 表格容器

导入from PySide6.QtWidgets import QTableWidget, QTableWidgetItem
QTableWidget 是展示二维数据(行和列)最强大的标准控件,完美地模拟了 Excel 表格的样式。

🟢 QTableWidget 的核心信号


第七部分:QTreeWidget —— 树形结构容器

导入from PySide6.QtWidgets import QTreeWidget, QTreeWidgetItem
QTreeWidget 用于展示具有层级关系的树状数据,如文件资源管理器中的文件夹与子文件。

🔵 进阶用法:QTreeWidgetItem (树节点的深入封装)

QTreeWidgetItem 是树形结构的基本组成单位,根节点与子节点的本质都是它。

# 创建节点
root_item = QTreeWidgetItem(tree)
root_item.setText(0, "C盘")

# 创建子节点并加入根节点
child_item1 = QTreeWidgetItem(root_item)
child_item1.setText(0, "Program Files")

child_item2 = QTreeWidgetItem(root_item)
child_item2.setText(0, "Windows")

# 展开/折叠状态
root_item.setExpanded(True) # 默认展开

🟢 QTreeWidget 的核心信号


第八部分、 容器组件的高阶隐藏细节补充

QTabWidget 补充细节

QStackedWidget 补充细节

QScrollArea 补充细节

QListWidget 补充细节

QTableWidget 补充细节

QTreeWidget 补充细节

第九部分、 容器类补充遗漏细节(极其常用)


PySide6-QWidget-Containers
第一部分:QGroupBox —— 带标题的分组边框容器
第二部分:QTabWidget —— 选项卡容器
第三部分:QStackedWidget —— 堆叠容器(页面切换神器)
第五部分:QListWidget —— 列表容器
第六部分:QTableWidget —— 表格容器
第七部分:QTreeWidget —— 树形结构容器
第八部分、 容器组件的高阶隐藏细节补充