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

Posted

技术标签:

【中文标题】为 QML 应用程序定义一个窗口图标【英文标题】:Define a window icon for a QML application 【发布时间】:2017-01-04 18:52:59 【问题描述】:

我目前正在阅读 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();

有人可以启发我吗? 在此先感谢:)

【问题讨论】:

没有可移植的方式,对于 windows,请将win32:RC_ICONS += appicon.ico 添加到您的 PRO 文件中。 已经完成。我也把我的图标放在了根文件夹中.. how to set an icon on a Main window and action with QT的可能重复 不,这是不同的,这是 QML 应用程序,而不是 C++ doc.qt.io/qt-5/appicon.html 【参考方案1】:

对我来说,它仅在使用 PNG 而不是 ICO 文件时才有效。 此外,您可能希望使用完整路径对其进行测试:

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

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

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

只要这有效,您就可以尝试再次使用相对路径或资源访问 :-)

【讨论】:

使用 5.11.2,ico 文件对我有用(至少在 Windows 10 上)【参考方案2】:

将图像添加到qrc 文件。然后给出以:/开头的路径。

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

Qt 版本:5.15.2

操作系统:Windows 10

【讨论】:

以上是关于为 QML 应用程序定义一个窗口图标的主要内容,如果未能解决你的问题,请参考以下文章

最大化矩形以适应应用程序窗口 QML

将 qml 项目移出窗口左侧

QML工程化应用之一键换肤

QT/QML添加程序图标的方法

当 QML 滚动条位于底部并且窗口高度被调整大小时,它不会更新

QT/QML 从主窗口重新打开新窗口