У меня есть приложение в Qt, пытающееся использовать помощника для помощи. Он работает в Windows, пытаясь заставить его работать в Linux. Используя это пример
if (process->state() == QProcess::Running)
return;
QString app = QLibraryInfo::location(QLibraryInfo::BinariesPath) + QDir::separator();
#if !defined(Q_OS_MAC)
app += QLatin1String("assistant");
#else
app += QLatin1String("Assistant.app/Contents/MacOS/Assistant");
#endif
QStringList args;
args << QLatin1String("-collectionFile")
<< "theHelpFile.qhc"<< QLatin1String("-enableRemoteControl");
process->start(app, args);
if (!process->waitForStarted()) {
QMessageBox::critical(this, tr("Remote Control"),
tr("Could not start Qt Assistant from %1.").arg(app));
return;
}
Там нет ошибки, я получаю открытое окно — не реагирует и пусто.
Если я удалю-enableRemoteControl
вариант, это работает.
Бег
/usr/bin/assistant -collectionFile theHelpFile.qhc -enableRemoteControl
запускает помощника с правильным набором справки.
Что я делаю неправильно ? Это «-enableRemoteControl
вариант нужен?
Документация Qt говорит, что «чтобы Ассистент слушал ваше приложение, включите его функцию удаленного управления, передав опцию командной строки -enableRemoteControl».
Но … он работает из моего приложения без этой опции … и не работает с ним?
Кто-нибудь может объяснить, почему?
Кажется, это ошибка, которая была недавно устранена
https://codereview.qt-project.org/#/c/95279/
«Сообщение коммита:
Помощник: исправление обновления индекса при запуске в режиме дистанционного управления
HelpEngineWrapper :: initialDocSetupDone () должен вызываться только один раз
сразу после инициализации справочных моделей. Вызывая его
каждое небольшое обновление приводит к рекурсии. «
Исправлено для Qt 5.4, хотя … Я застрял, используя 4.8 … Так что я не могу решить проблему …