当前位置: 首页 > news >正文

PySide6 GUI 学习笔记——常用类及控件使用方法(常用类图标QIcon)

文章目录

  • PySide6.QtGui.QIcon 类介绍
    • 一、核心特性
    • 二、Python 示例代码
      • 1. 从图像文件创建图标
      • 2. 使用系统主题图标
      • 3. 动态状态切换
      • 4. 高DPI图标处理
      • 5. 综合应用举例
    • 三、关键方法说明
    • 四、枚举类型

PySide6.QtGui.QIcon 类介绍

QIcon 是 Qt for Python 中用于管理可缩放图标的类,支持多种显示模式和状态。它能够根据不同的 UI 场景(如正常、禁用、激活、选中等状态)自动选择合适的图标样式,并支持从图像文件、主题系统或图标字体加载图标。

一、核心特性

  • 多状态支持:可为不同模式(Normal/Disabled/Active/Selected)和状态(On/Off)提供图标变体。

  • 灵活来源:支持从本地文件、内置资源、系统主题或矢量图标字体加载图标。

  • 高DPI适配:自动识别 @nx 高分辨率后缀图片,适配不同屏幕缩放比例。

  • 动态生成:当请求的图标尺寸不存在时,自动缩放最接近的可用图标。

二、Python 示例代码

1. 从图像文件创建图标

from PySide6.QtWidgets import QApplication, QToolButton
from PySide6.QtGui import QIconapp = QApplication()创建按钮并设置图标button = QToolButton()
button.setIcon(QIcon("open.png"))  # 基础图标
button.show()添加禁用状态图标icon = QIcon("open.png")
icon.addFile("open_disabled.png", QIcon.Mode.Disabled)
button.setIcon(icon)app.exec()

2. 使用系统主题图标

from PySide6.QtWidgets import QApplication, QPushButton
from PySide6.QtGui import QIconapp = QApplication()# 从系统主题加载"撤销"图标button = QPushButton()
button.setIcon(QIcon.fromTheme(QIcon.ThemeIcon.EditUndo))  
button.show()# 带备用图标的写法icon = QIcon.fromTheme("document-save", QIcon("save_fallback.png"))
button.setIcon(icon)app.exec()

3. 动态状态切换

from PySide6.QtWidgets import QCheckBox
from PySide6.QtGui import QIconclass ToggleButton(QCheckBox):def __init__(self):super().__init__("静音")# 准备两种状态图标self._on_icon = QIcon("volume_off.png")self._off_icon = QIcon("volume_on.png")self.setIcon(self._off_icon)self.toggled.connect(self._update_icon)def _update_icon(self, checked):self.setIcon(self._on_icon if checked else self._off_icon)

4. 高DPI图标处理

icon = QIcon()
icon.addFile("image.png")        # 普通分辨率
icon.addFile("image@2x.png")     # 2倍高分辨率
icon.addFile("image@3x.png")     # 3倍高分辨率

5. 综合应用举例

import sys
from PySide6.QtWidgets import QApplication,QWidget,QPushButton
from PySide6.QtGui import QPixmap,QIconclass MyWidget(QWidget):def __init__(self,parent=None):super().__init__(parent)pix =QPixmap()pix.load("bright.png")icon =QIcon(pix)self.setWindowIcon(icon)   #设置窗口图标btn = QPushButton(self)btn.setIcon(icon)  #设置按钮图标
if __name__ == '__main__':app=QApplication(sys.argv)window = MyWidget()window.show()sys.exit(app.exec())

QIcon示例

三、关键方法说明

方法描述
addFile(fileName, mode, state)添加带状态的图标文件
fromTheme(name)从系统主题加载图标
pixmap(size, mode, state)获取指定状态的像素图
isMask()检测是否为蒙版图标

四、枚举类型

  • Mode: 控制图标显示场景

    • Normal, Disabled, Active, Selected
  • State: 控制开关状态

    • On, Off
  • ThemeIcon: 提供200+预定义系统图标

    • 如 EditUndo, DialogWarning, MediaPlay 等

通过 QIcon 可以创建适应复杂 UI 需求的图标系统,其与 Qt 控件深度整合的特性能够自动处理不同显示环境和设备参数下的图标渲染问题。

相关文章:

  • ​《分布式年夜》
  • PTA刷题笔记(纠细节 有详解)
  • 【OCCT+ImGUI系列】010-BRepMesh-网格化IncrementalMesh
  • 【Android】非System用户下Persist应用不自动拉起
  • 2025年渗透测试面试题总结-匿名[实习]安全工程师(安全厂商)(题目+回答)
  • 【Android】System分区应用自带库与原生库同名问题分析
  • Java集合框架基础知识点全面解析
  • Go 语言基础1 Slice,map,string
  • 计算机视觉(图像算法工程师)学习路线
  • where is the examples of stm32h743i demo project inside of stm32cubeh7
  • 电商小程序店铺详情页:头部无限分类与筛选功能实现
  • 书生五期--端侧小模型论文分类微调打榜
  • 搭建 C/C++_CMake_Boost_git 开发环境
  • 计算机视觉中的可重复性:深入案例分析与Python代码实现
  • 【MySQL】08.视图
  • TiDB:从快速上手到核心原理与最佳实践
  • 【时时三省】(C语言基础)函数的嵌套调用
  • python学习day28
  • Linux 系统常用核心库----用户态程序运行的基石
  • 广东省省考备考(第二十天5.25)—言语:逻辑填空(听课后强化训练)
  • 外贸soho怎么做网站/seo网站优化培训怎么样
  • 网站建设行业努力都看不到效果/怎么注册网站
  • 河池市民政局门户网站建设/百度竞价平台官网
  • 一个服务器可以做两个网站/沧州网站建设推广
  • 小程序制作需要什么技术/长沙排名优化公司
  • 广东人才网官方网站招聘信息/国外网站如何搭建网页