主要进程是tkinter python脚本(GUI进程),在其中,我们正在使用子进程模块执行另一个python脚本。标准缓冲区(stdin,stout,stderr)设置为subprocess.PIPE,我们正在使用通道进行输入和输出通信。
现在主要部分即将到来;
我们需要根据子流程python脚本中选择的选项,在tkinter GUI中显示3种不同的弹出窗口。对于此数据传递,我们使用ZeroMQ(零消息队列)。
一个选项是将数据写入zmq,GUI进程应使用小部件的after方法和一些回调函数来继续检查队列中是否有任何数据(轮询)。但是我们不想要这种方法!
每当数据进入队列时,子进程脚本应将一个事件/信号传递给GUI,并且在事件接收时,GUI进程将从队列中读取数据。我们可以实施吗? 我通过互联网搜索了很多东西。请帮忙!!!
(注意:解决方案应同时适用于Windows和Linux)
谢谢。
这是我在轮询方法中使用ZMQ的链接。 https://www.reddit.com/r/learnpython/comments/8cbhii/handling_blocking_calls_while_1s_inside_tkinters/