Skip to content

Conversation

wirano
Copy link

@wirano wirano commented Apr 27, 2025

qtawesome drop 了 fa4 支持,我这里替换成了高版本的 font awesome。

有一个问题是用户配置文件里也存了相关图标符号,不知道有没有除了删除配置外的平滑过渡方法

@wirano wirano marked this pull request as draft April 27, 2025 05:41
@wirano
Copy link
Author

wirano commented Apr 27, 2025

@Neutree

@Neutree
Copy link
Owner

Neutree commented Apr 27, 2025

如果qtawesome直接移除了4的支持就比较糟糕了,像 fa.close 这种图标会直接报错吗

@wirano
Copy link
Author

wirano commented Apr 27, 2025

@Neutree 缺少的图标都会报错类似下面这样

Click to expand
Traceback (most recent call last):
  File "/home/wirano/Workspace/code/Python/COMTool/COMTool/main2.py", line 303, in onPluginSelectorChanged
    self.addItem(pluginClass, setCurrent = True)
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/wirano/Workspace/code/Python/COMTool/COMTool/main2.py", line 191, in addItem
    item = PluginItem(name, pluginClass,
                    conns, connsConfigs,
                    self.config, pluginConfig,
                    self.hintSignal, self.reloadWindowSignal,
                    self.onConnChnaged)
  File "/home/wirano/Workspace/code/Python/COMTool/COMTool/pluginItems.py", line 64, in __init__
    self.widget = self.newFrame(self.isAddConn)
                  ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "/home/wirano/Workspace/code/Python/COMTool/COMTool/pluginItems.py", line 148, in newFrame
    self.plugin.onUiInitDone()
    ~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/wirano/Workspace/code/Python/COMTool/COMTool/plugins/protocol.py", line 307, in onUiInitDone
    item = self.insertSendItem(item, load=True)
  File "/home/wirano/Workspace/code/Python/COMTool/COMTool/plugins/protocol.py", line 419, in insertSendItem
    utils_ui.setButtonIcon(delete, "fa.close")
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "/home/wirano/Workspace/code/Python/COMTool/COMTool/utils_ui.py", line 54, in setButtonIcon
    button.setIcon(qta.icon(icon, color=iconColor))
                   ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/qtawesome/__init__.py", line 268, in icon
    return _instance().icon(*names, **kwargs)
           ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/qtawesome/iconic_font.py", line 463, in icon
    self._parse_options(specific_options, general_options, names[i])
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/qtawesome/iconic_font.py", line 529, in _parse_options
    prefix, chars = self._get_prefix_chars(names)
                    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
  File "/usr/lib/python3.13/site-packages/qtawesome/iconic_font.py", line 564, in _get_prefix_chars
    raise Exception(error)
Exception: Invalid font prefix "fa"

@wirano wirano marked this pull request as ready for review April 27, 2025 11:10
@wirano wirano marked this pull request as draft April 27, 2025 11:12
@Neutree
Copy link
Owner

Neutree commented Apr 28, 2025

这样的,那还是升级吧。
只是用户配置就没办法了,得重新设置了,或者读取用户配置文件时扫描一遍配置,把 fa 开头的自动替换为新版的,不过听麻烦的感觉没啥必要

@wirano
Copy link
Author

wirano commented Apr 28, 2025

那就在发版的时候提醒用户操作下?配置里硬编码的是 protocol 插件发送按钮的图标,应该是只要打开过插件就会受影响

@Neutree
Copy link
Owner

Neutree commented Apr 28, 2025

感觉还是先限制requirements到 1.3.1 版本吧,反正图标更新影响也没那么大,但是不兼容之前的会有很多人遇到这个困扰

@wirano
Copy link
Author

wirano commented Apr 28, 2025 via email

@Neutree
Copy link
Owner

Neutree commented Apr 29, 2025

要是影响到其它项目了,用venv就好了

@wirano
Copy link
Author

wirano commented Apr 29, 2025

通过发行版包管理/AUR 安装势必是跟着系统的依赖走的,还是得想一个优雅的解决方法

@Neutree
Copy link
Owner

Neutree commented Apr 30, 2025

确实,最好就是兼容了,读取用户配置文件后检查图标,发现不合法,从内置一个表中自动替换为新版,如果表里面没有,弹出一个窗口让用户重新选择,用户也可以不选择则直接设置为一个默认图标

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants