Qt Assistant fails in linux with enableRemoteControl option

旧城冷巷雨未停 提交于 2019-12-25 03:13:35

问题


I have an application in Qt, trying to use assistant for help. It is working in windows, trying to make it work on Linux. Using this example

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;
 }

There is no error, I get an open window - non-responsive and empty.

If I remove the "-enableRemoteControl" option, it works.

Running

/usr/bin/assistant -collectionFile theHelpFile.qhc -enableRemoteControl

launches the assistant with the correct help collection.

What am I doing wrong ? Is the "-enableRemoteControl" option necessary ?

Qt documentation says that "In order to make Assistant listen to your application, turn on its remote control functionality by passing the -enableRemoteControl command line option."

But... it is working from my application without that option... and not working with it ?

Can anybody please explain why ?


回答1:


Seems it is a bug that has been addressed recently

https://codereview.qt-project.org/#/c/95279/

"Commit message:

Assistant: Fix index updating on startup in the remote control mode

HelpEngineWrapper::initialDocSetupDone() should be called only once right after the initialization of the help models. Calling it on every small update leads to recursion."

Fixed for Qt 5.4 though... I am stuck using 4.8... So I may not be able to solve the problem...



来源:https://stackoverflow.com/questions/26898215/qt-assistant-fails-in-linux-with-enableremotecontrol-option

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!