用wxPython编写一个活动程序。从哪儿开始?

时间:2013-09-10 16:41:55

标签: python python-2.7 wxpython

我花了最后几个小时试图了解wxPython,因为我想编写一个GUI程序。我发现了一些关于它的教程(不是太多),但是所有这些教程都只是解释了如何添加另一种小部件,直到像LED数字输出和鼠标手势这样的花哨的东西(例如,它可以用得很远:{{3 }})。但到目前为止我能找到的一切只不过是创建一个静态GUI,等待用户做某事,然后执行一些处理程序并再次等待。我花了一段时间才发现wx.App参与了所有这些,并且你可以将它子类化。

我想编写一个没有输入的程序! GUI应该是登录服务器的客户端,当服务器发送内容时,我希望GUI显示发生的事情。我甚至没有找到一个教程,提到这样的程序存在。我怎么写这样的东西?他们如何与wxpython集成?

我是否需要跨越另一个线程?有没有办法挂钩MainLoop并定期执行一些代码,检查更改,然后更新一些奇特的GUI事物?是否有任何教你的页面,如何做到这一点?

1 个答案:

答案 0 :(得分:1)

首先,你应该弄清楚如何在没有GUI的情况下做你想做的事情。在这种情况下,您需要弄清楚如何登录服务器。你可能需要使用像paramiko这样的东西。见http://www.lag.net/paramiko/

一旦弄明白,就可以将其添加到GUI中。可能在按钮处理程序中,当用户按下按钮时,会弹出一个对话框,询问用户名和密码是否传递给paramiko以登录服务器。

如果服务器查询需要很长时间才能执行(比如说您要查询数据库中的大量数据),那么您将需要在单独的线程中运行查询。为什么?因为该查询将阻止GUI的主循环并使应用程序冻结直到完成。有关wxPython和线程的信息,请参阅以下文章:

我写了一篇关于让wxPython与套接字服务器通话的教程,所以你可能会发现它很有用:http://www.blog.pythonlibrary.org/2013/06/27/wxpython-how-to-communicate-with-your-gui-via-sockets/

我还有一篇关于如何制作图像查看器的文章,并在那里对数据库执行CRUD操作。