如果重要的话,我正在使用python 3 / tkinter。
在查看代码示例时,我注意到主循环通常位于代码的GUI部分,其余代码为GUI提供回调,以便在需要时调用。
但我的模拟运行独立于用户交互;用户界面可以不时提供视图中的视图,但它不能控制模拟中发生的事情。所以我希望主循环关注模拟而不是UI。我该怎么做?
答案 0 :(得分:2)
为什么不分开你的逻辑和演示。编写你的sim后端以响应单个基于文本的protcol来接收cmds并发回结果,然后只需通过你的gui程序与它进行对话即可。 unix套接字。
答案 1 :(得分:1)
编写自己的主循环,调用检查和处理GUI事件的函数。
答案 2 :(得分:1)
在这种情况下,您应该在单独的线程中执行处理,然后让GUI线程向该线程发送和接收消息。
但是,不要尝试直接从处理线程更新GUI。相反,您可以使用消息队列向GUI发送消息,类似于effbot's example。重要的是queue.get_nowait()
:如果队列中没有任何内容,您可以在GUI中定期运行此操作而不会阻塞其他线程。