python - 根据文件的mimetype获取图标,Linux + Python

标签 python linux pyqt gtk mime-types

核心问题:

如何将 mimetype - image/png 转换为图标文件的实际路径 - /usr/share/icons/Menda-Circle/mimetypes/24x24/application-image-png .svg

同时尊重linux distros DE的图标主题集?


自己的进步:

mimetypes.guess_type() 会根据文件名轻松获取文件的 mimetype,这是 OKish。

将 mimetype 翻译成通向图标的路径并不容易

到目前为止,我在使用 linux 自己的 xdg-utils 或 pyxdg 检测图标主题或超越它方面没有任何进展。 PyQt5 似乎也有问题,这在大多数 DE 不是基于 Qt 的情况下是可以理解的。也许在 KDE 上它会得到一些东西。

因此,通过一些谷歌搜索,我可以使用它通过 Gtk 检测图标主题

from gi.repository import Gtk
print(Gtk.Settings.get_default().get_property("gtk-icon-theme-name"))

这就是我现在的处境,我想通过一些工作并针对所有情况进行调整,我可以想出一些函数来获取最常见的发行版/DE 上的图标和最常见的图标主题。假设我找出将 mimetype 转换为图标文件名的模式。

但这一切都感觉应该完成并且已经完成了。它是一些自由桌面标准,每个文件管理器或任何带有文件选择器或显示文件和文件夹的程序都在使用此功能,不是吗?

是否有一些优雅的方式来解决这个问题?

最佳答案

Gio 的 ContentType 为您处理获取文件类型及其图标:

https://lazka.github.io/pgi-docs/#Gio-2.0/functions.html#Gio.content_type_get_icon

关于python - 根据文件的mimetype获取图标,Linux + Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34568727/

相关文章:

Python dataframe 转置某些行具有多个值的位置

c - 根据时间在数据库(MYSQL)中排队数据

java - PocessBuilder 执行 glassfish 命令

python - 如果结果为 True,如何获得绿色矩形;如果 result = (paper == dict_k) 中结果为 False,如何获得红色框?

qt - (Qt) 工具栏中的两行小部件

python - Pandas 能否在没有迭代的情况下找到连接任何一对**点**并且不与任何给定的**线**相交的所有线?

python - 如何有效地左移一个元组?

python从子部件调用父方法

python - 如何使用nose2测试Python 2代码

linux - 确定我可以向文件句柄写入多少;将数据从一个 FH 复制到另一个