wxpython应用多线程CallAfter来实现子页面向主页面传递消息的要求

本人最近在做一个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

其实很简单的东西,就几条语句就解决了问题,我还花了两天时间,中途还差点吐了,原谅我,我是新手!

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值