0

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

我想写一个程序,不用输入就能做事!GUI 应该是在服务器上登录的客户端,当服务器发送一些东西时,我希望 GUI 显示发生了什么。我什至找不到一个教程提到存在这样的程序。我怎么能写出这样的东西?它们如何与 wxpython 集成?

我需要跨越另一个线程吗?有没有办法连接到 MainLoop 并定期执行一些代码,检查更改,然后更新一些花哨的 GUI 东西?是否有任何页面教你,如何做到这一点?

4

1 回答 1

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 操作。

于 2013-09-10T16:53:37.853 回答