我正在准备一个类似于“Windows开始菜单搜索”的应用程序。你知道吗
这就是为什么我需要每个应用程序都有自己的图标。你知道吗
从C:\ProgramData\Start Menu\Programs\
文件路径,我将现有应用程序添加到一个(QListWidget)
列表中,其中包含它们的名称和路径。你知道吗
我得到这样的图标: https://forum.qt.io/topic/62866/getting-icon-from-external-applications
provider = QFileIconProvider()
info = QFileInfo("program_path")
icon = QIcon(provider.icon(info))
但我不想这个“快捷图标”出现。你知道吗
然后,我在想,我得出了这样的结论:
shell = win32com.client.Dispatch("WScript.Shell")
provider = QFileIconProvider()
shortcut = shell.CreateShortCut(programPath)
info = QFileInfo(shortcut.targetPath)
icon = QIcon(provider.icon(info))
这个解决方案奏效了。但是,这给一些应用程序带来了问题。 因此,我正在寻找一个替代解决方案。
你差点就到了。你知道吗
浏览菜单目录树实际上是正确的路径,但是您还必须确保链接的图标实际上与目标相同,因为它可能不是。
shortcut.iconlocation
是一个字符串,表示一个“元组”(排序),包括图标路径和索引(因为图标资源可能包含多个图标)。你知道吗只要图标索引为0,就可以使用QFileIconProvider和
targetPath
或iconLocation
(如果逗号前有内容)获取图标。你知道吗当图标索引的值不同于0时,问题就出现了,因为Qt不能处理这个问题。你知道吗
我编写了一个简单的函数(基于一些研究hereonStackOverflow)。你知道吗
相关问题 更多 >
编程相关推荐