Qt 5:从命令行打开特定类的文档

时间:2014-04-03 16:20:26

标签: qt vim

在Qt 4中,我有doc / html文件夹和文档,我使用QtHelp plugin为Vim立即打开类引用,非常方便。

但是在Qt 5中,我看不到安装了html帮助。这太可悲了。

我看到我们有助手,它可以显示本地安装的帮助,但是如何让它为给定的类打开引用?像这样:

assistant -class QList

我找到的唯一方法是使用网址:

assistant -showUrl qthelp://org.qt-project.qtcore.521/qtcore/qlist.html

这有效,但实际上并不方便:如果我知道某个类名,我该如何解析它的URL? (上面的QList我手动找到的:只需在助理搜索中输入QList,然后复制网址

所以,问题是:对于Qt 5,如果我知道类名QListQMainWindow等,如何自动打开它的帮助?而且,我更喜欢浏览器而非Qt助手,至少因为Qt助手没有标签,因此,对于每个班级,将会打开新的助手副本。

1 个答案:

答案 0 :(得分:1)

可以在Qt 5中执行。您可以将stdin上的命令提供给assistant -enableRemoteControl

说,将activateKeyword QList写入标准输入,助手将显示它。

您可以通过单独的流程轻松完成。首次发布:

# for unix socket
nc -lkU ~/.assistantfifo | assistant -enableRemoteControl
# tcp socket
nc -lk 8080| assistant -enableRemoteControl

然后,你可以做

# for unix socket
echo "activateKeyword QObject" | nc -U ~/.assistantfifo
# for tcp socket
echo "activateKeyword QList" | nc localhost 8080

activateKeyword选择索引词。如果该术语是非唯一的,就像多个类中存在的方法一样,将打开一个选择对话框。

要在该术语中进行选择(例如,班级中的方法),请使用setSource #anchor,其中anchor是方法名称,或foo-prop用于属性foo

你必须修改vim插件才能做类似的事情。

您需要了解这一切的所有内容都在man nc中。 nc是netcat的缩写。 Unix域套接字是命名文件系统对象。它们是使用-U选择的,并推荐使用tcp套接字。

侦听netcat在文件系统上创建套接字。尝试写入不存在的套接字是一种无操作,因此如果nc -U ~/.assistantfifo不存在,~/.assistantfifo是无害的无操作。