本人最近在做一个wxpython的界面程序,其实程序也不是我写的,我只是在上面添加一些功能。最开始我是做的网络配置,就是界面可以对网络进行配置。针对系统是麒麟系统,其实其内核是Fedora的linux系统,基本的流程是首先设计一个对话框,弹出对应的界面,然后可以子啊界面里面输入要求的IP地址、子网掩码、网关之类的,然后get这些输入的信息通过OS命令对linux系统进行配置IP即可。
另外一个是之前设计的界面没有刷新功能,每次添加了项目或者是删除了项目都不会更新下面的显示栏,现在根据资料查找,之前的设计方法是应用bind功能与鼠标进行绑定,然后是每次鼠标进如主界面的时候就会刷新,但是这样还不够完善,后来经朋友指点,采用消息传递的方式,其实也是多线程里面的callafter和postevent,具体见我前面的博客转载,我的具体操作如下:
首先在子窗口的开头添加如下代码:
from wx.lib.pubsub import Publisher
from threading import Thread
然后在子窗口的结束函数出添加如下代码:
wx.CallAfter(Publisher().sendMessage,'update')
到目前为止,子程序里面就完成了,然后是主程序里面的主界面程序的末尾添加如下代码,其中第一行的#是解释语句,Refresh是主程序里面的刷新函数,可以替换成其他的函数。
# create a pubsub receiver
Publisher().subscribe(self.Refresh, "update")
还有就是在主程序里面的开头也要添加如下代码
from wx.lib.pubsub import Publisher
from threading import Thread
其实很简单的东西,就几条语句就解决了问题,我还花了两天时间,中途还差点吐了,原谅我,我是新手!