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

时间:2017-05-15 17:22:34

标签: c++ qt windows-applications

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

枚举QFileIconProvider :: IconType

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

截图:

enter image description here

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

更新

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

2 个答案:

答案 0 :(得分:1)

我找到了解决方案。

<强>代码:

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

现在可行。

答案 1 :(得分:0)

您还可以从应用程序对象中获取默认图标。 (可以在所有平台上运行。)

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

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

该功能在QGuiApplication中可用。

QApplication继承QGuiApplication