为QML应用程序定义一个窗口图标。

13

我正在阅读QML文档,但我发现没有关于如何定义应用程序图标的说明。

我尝试了一些东西,但这并不起作用:

int main(int argc, char *argv[])
{
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QGuiApplication app(argc, argv);
    app.setWindowIcon(QIcon(":/favicon.ico"));

    QQmlApplicationEngine engine;
    engine.load(QUrl(QLatin1String("qrc:/main.qml")));

    return app.exec();
}

能有人给我解释一下吗? 先谢谢了 :)


1
没有通用的方法,对于Windows,请在您的PRO文件中添加win32:RC_ICONS += appicon.ico - dtech
1
已经完成了。我也把我的图标放在根文件夹中了。 - Francis-Olivier Couture
3
不是一回事,这是QML应用程序,不是C++。 - Olivier RD
https://doc.qt.io/qt-5/appicon.html - user240515
2个回答

14

对于我来说,只有在使用PNG文件而不是ICO文件时才有效。 另外,您可能需要使用完整路径进行测试:

app.setWindowIcon(QIcon("C:/path_to_ico/favicon.png"));

或者直接使用 - 如果它位于您的工作目录中:

app.setWindowIcon(QIcon("favicon.png"));

一旦这个功能正常工作,您就可以尝试再次使用相对路径或资源访问了 :-)


使用5.11.2版本,ico文件在我的电脑上可以正常工作(至少在Windows 10系统下)。 - Svend

2
将图片添加到qrc文件中。然后给出以:/开头的路径。
app.setWindowIcon(QIcon(":/images/favicon.png"));

Qt版本:5.15.2

操作系统:Windows 10


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接