我有一个带有交互式GUI的PyQt桌面应用程序
基本上,它是一个仪器控制器:点击按钮可以启动泵,触发声音警报,一些线程连续读取流量计的数据,等等
我希望能够远程控制应用程序/仪器
运行Qt桌面应用程序的仪器和计算机位于远程站点,具有(非常)缓慢且昂贵的互联网连接,因此不接受类似TeamViewer的解决方案;但是,我可以用SSH连接到linux计算机
这就是为什么我认为使用命令行界面与我的应用程序交互是一个不错的解决方案
我知道可以使用桌面GUI或CLI启动应用程序,但是否可以在已经运行的桌面GUI上与CLI交互
我希望桌面一直在运行,它永远不会停止。 我希望在使用CLI启动泵时,它在GUI中同时显示为“已启动”
换句话说,我希望能够编写一些CLI命令,就像我虚拟地单击GUI按钮一样
在这些情况下,最好让服务始终运行,并且GUI和CLI是客户端:
客户机之间的通信必须通过一些进程间通信(IPC)来完成,如DBus、ZeroMQ、Mqtt等。在Qt的情况下,您可以使用 Qt Remote Objects (QtRO)
因此,GUI、CLI或任何客户端都会请求服务修改任何输出(启动泵、触发声音警报等)并接收通知
在下面的示例中,它说明了我在前面几行中指出的内容
为此,首先启动service.py,然后启动cli.py或gui.py,如果gui带有按钮,则使用QLabel显示的“bumb”的状态将更改。对于cli,必须将“开”或“关”置于“开”或“关”位置以更改“bumb”的状态
service.py
gui.py
cli.py
相关问题 更多 >
编程相关推荐