在 Windows 上获取默认应用程序图标

Get default app icon on Windows

我想从 QFileIconProvider 获取默认应用程序图标,但只有:

枚举QFileIconProvider::IconType

QFileIconProvider::Computer
QFileIconProvider::Desktop  
QFileIconProvider::Trashcan 
QFileIconProvider::Network  
QFileIconProvider::Drive    
QFileIconProvider::Folder   
QFileIconProvider::File

截图:

我可以使用 QFileIconProvider 导航到一些没有图标的系统可执行文件以获取此默认图标,但我认为应该有另一种方法。 如何获得这个图标?谢谢。

更新:

我找到了默认应用程序图标的标识符 - IDI_APPLICATION。现在的问题是如何将其转换为QIconQString?我已经尝试了 QString::fromWCharArray(IDI_APPLICATION)QString::fromStdWString(IDI_APPLICATION) 但它不起作用,应用程序崩溃了。如何转换?谢谢。

我找到了解决方案。

代码:

QIcon icon = QtWin::fromHICON(LoadIcon(NULL, IDI_APPLICATION));

现在可以了。

您还可以从应用程序对象中获取默认图标。 (可能适用于所有平台。)

QApplication app = QApplication(argc, argv);
QIcon icon = app.windowIcon();

文档link: http://doc.qt.io/qt-5/qguiapplication.html#windowIcon-prop

该功能在 QGuiApplication 中可用。

QApplication继承QGuiApplication.