python pyside2 Frame容器(QFrame)与Widget容器(QWidget )的区别、应用场景 作者:马育民 • 2025-09-17 20:49 • 阅读:10002 # 区别 `QFrame` 继承自 `QWidget`,是 `QWidget` 的 “增强版容器”,核心差异在于: | 特性 | QWidget | QFrame | | ---------- | ---------------------------- | ------------------------------------------------------ | | 边框支持 | 仅能通过 StyleSheet 简单设置 | 内置 `frameStyle` 属性,支持多种边框类型 | | 背景与阴影 | 需手动编写复杂 StyleSheet | 支持 `setBackgroundRole`、`setShadowEffect` 等便捷方法 | | 布局兼容性 | 支持,但无视觉分组能力 | 支持,且可通过样式实现控件分组可视化 | | 核心用途 | 基础容器、自定义控件基类 | 界面分区、控件分组、视觉装饰 | # 例子 ### QWidget 没有边框 [](https://www.malaoshi.top/upload/0/0/1GW1sabYj9tk.png) ### QFrame 有边框 [](https://www.malaoshi.top/upload/0/0/1GW1sac99n4p.png) # 应用场景 ### QFrame和QWidget 场景 * **控件分组**:将相关控件(如登录表单的 “账号 + 密码”)包裹在 `QFrame` 中,通过边框 / 背景区分区域; * **界面分区**:在复杂界面中用 `QFrame` 划分功能模块(如左侧导航区、中间内容区、右侧信息区); ### QFrame 场景 * **视觉装饰**:作为分隔线、卡片容器或带阴影的面板,提升界面美观度; * **自定义控件基类**:基于 `QFrame` 扩展带边框 / 背景的自定义控件(如进度条、仪表盘)。 原文出处:http://malaoshi.top/show_1GW1saeEomos.html