在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,如果我知道类名QList
,QMainWindow
等,如何自动打开它的帮助?而且,我更喜欢浏览器而非Qt助手,至少因为Qt助手没有标签,因此,对于每个班级,将会打开新的助手副本。
答案 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
是无害的无操作。