Python GUI实现方向

时间:2016-03-11 03:44:49

标签: python multithreading wxpython twisted

我目前正在编写一个集成了Twisted Python的wxPython GUI,以便能够通过LAN将基本文本发送到RaspberryPi。在谈到我应该实现网络的方式时,我想要帮助找出最适合这个项目的设计路径。

为了简要地给项目提供更多背景信息,我的任务是创建一个GUI,连接到一个控制研究级CCD的RaspberryPi(基本上只有天文学使用相机),这是一种非常昂贵的设备。我将把用户给出的命令发送到使用"解析器"的TwistedPython服务器的本地网络。将命令发送到CCD驱动程序。

确定网络设计理念。我正在实现GUI的主要组件,并开始需要通过网络进行通话。至于网络编码,我已经成功地在几个按钮中实现了通过网络发送文本所需的代码(例如,当我点击相机曝光按钮时,它发送文件名和曝光时间)。正是在这一点上,我需要决定是否应该使用线程。我在使用openMP,MPI和Pthreads进行C编程的线程方面有一些经验,但我无法理解" kind"线程我应该使用。

一些研究让我看到Python内置了线程,然后使用TwistedPython进行线程化。在谈到它们如何运作时,我没有看到两者的巨大差异。总的来说,我想我想要它所以我可以简单地为Twisted打开一个单独的线程然后发送一行文本然后在我完成后关闭它。但是,我不确定我应该采用哪种方式进行线程化。如果我只通过区域网络发送少量数据,我甚至不需要实现线程。

我的GUI中有一部分我知道需要线程,这将是一个通过时钟更新的进度条。在这种情况下,GUI仍然可以使用,因为在天文学中你可以持续超过十分钟的曝光。

无论如何,你们中的一些人可以帮助我根据自己的需要提出正确的问题吗?

由于

1 个答案:

答案 0 :(得分:0)

看起来这是一个真正的" old"问题没有任何答案。我希望你现在已经弄清楚了,如果不是我有一个你可能感兴趣的解决方案。我做了类似的事情,除了我使用带有EthernetShield的Arduino。

我使用socket通过LAN和python内置线程(threading.Thread)进行通信,以完成它需要完成的任何任务。

现在的问题是,你的Twisted框架中是否有你的GUI?如果是这样,那么您应该只依靠Twisted框架来使代码更易于维护。如果没有,由于您的GUI已经构建,您可以使用我上面提到的方法与服务器进行通信。如果我的理解是错误的,你应该跟我清楚GUI,Twisted和服务器的架构/关系。