Почему мое приложение Qt игнорирует параметр applicationDisplayName ?

#qt #kde

#qt #kde-plasma

Вопрос:

Я запускаю небольшое приложение на KDE Plasma 5, созданное с помощью Qt и KDE framework. Почти все работает как шарм, только одна часть не работает. Я просто не могу установить отображаемое имя приложения. У меня есть следующий код:

 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 ("Простое приложение для управления сервером управления рендерингом blender"),
 KAboutLicense::Custom,
i18n("Copyright 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(amp;parser);

 parser.process(приложение);
 aboutData.processCommandLine(amp;parser);

 auto * window = new MainWindow();
 окно-> показать ();

 возвращает QApplication::exec();
}

Из чтения документации и проверки некоторых примеров следует, что это должно задать название приложения в моей среде KDE. Но это не так, имя приложения — это имя исполняемого файла.

Это ошибка в KDE или я делаю что-то не так?

Ответ №1:

Документы немного сбивают с толку, для чего на самом деле используются ApplicationName и displayApplicationName , об этом было несколько сообщений об ошибках, и поведение изменилось между версиями, если я правильно помню.

Если вам нужен заголовок окна, я думаю, вы можете сделать.

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