首页 > 解决方案 > 为什么我的 Qt 应用忽略了 applicationDisplayName 的设置?

问题描述

我正在使用 Qt 和 KDE 框架创建的 KDE Plasma 5 上运行一个小应用程序。几乎所有东西都像魅力一样起作用,只有一部分不起作用。我只是无法设置应用程序显示名称。我有以下代码:

    int main(int argc, char **argv) {
        QApplication 应用程序(argc, argv);

        KLocalizedString::setApplicationDomain("blender-render-control");
        KCrash::initialize();

        KAboutData aboutData(QStringLiteral("blender-render-control-center"),
                             i18n("Blender 渲染控制中心"),
                             QStringLiteral("1.0"),
                             i18n("一个控制搅拌机渲染控制服务器的简单应用程序"),
                             KAboutLicense::自定义,
                             i18n("版权所有 2019, Knerd"));

        aboutData.addAuthor(i18n("Knerd"), i18n("Author"), QStringLiteral("knerd@knerd.knerd"));
        aboutData.setOrganizationDomain("knerd.knerd");
        aboutData.setDesktopFileName(QStringLiteral("knerd.knerd.blender-render-control"));

        KAboutData::setApplicationData(aboutData);
        QApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("knerd.knerd.blender-render-control")));
        application.setApplicationDisplayName(i18n("Blender 渲染控制中心"));
        application.setApplicationName(i18n("Blender 渲染控制中心"));

        QCommandLineParser 解析器;
        aboutData.setupCommandLine(&parser);

        parser.process(应用程序);
        aboutData.processCommandLine(&parser);

        自动 *window = new MainWindow();
        窗口->显示();

        返回 QApplication::exec();
    }

通过阅读文档并检查一些示例,这应该在我的 KDE 环境中设置应用程序标题。但事实并非如此,应用程序名称是可执行文件的名称。

这是 KDE 中的错误还是我做错了什么?

标签: qtkde

解决方案


文档对 applicationName 和 displayApplicationName 的实际用途有点混乱,有一些关于它的错误报告,如果我没记错的话,版本之间的行为已经改变。

如果你想要一个窗口标题,我想你可以做到。

window->setWindowTitle( QCoreApplication::applicationName() );

推荐阅读