python-3.x - wxpython pubsub 在从 dill 加载后失败
问题描述
我使用 wxpython (phoenix) 作为前端,使用 wx.lib.pubsub 来管理程序中的模块间(和包间)消息传递。我目前使用模块 dill 来保存和加载程序状态。
我只使用 sendMessage 和 subscribe 方法,这里没有花哨的欺骗。
如果我留在同一个会话中,也就是说,我构建模型并修改它而不保存和重新加载模型,一切正常。但是,当重新启动 GUI 并从保存的文件开始会话时,以前正常工作的部分消息传递失败:消息已发送,但接收者没有收到它们。当直接调用本应在接收方调用的方法时,无论会话如何,一切都很好。
由于问题的复杂性,我无法真正提供示例,但希望能做出任何澄清或分享类似经验的努力。
解决方案
回答我自己的问题:在尝试重现玩具问题中的问题后,随后进行了冗长的调试,但发现问题的根源是设置某些属性的方式,即使用 property.setters。这些已被 set_ 方法替换,问题已解决。
我知道这个问题,而且答案也远低于预期的 SO 标准,请随意投反对票。
推荐阅读
- javascript - 在Javascript中,是否有一个函数可以从数字传递中返回形成整数的最大列表作为字符串
- java - 如何使用定时器和延迟更新 Java Swing GUI?
- ios - 尝试在主从视图中获取和更新特定的核心数据实体
- c# - 在 ASP .NET 中使用静态类初始化另一个静态类的成员
- python-3.x - Telepot锁reply_keyboard python
- node.js - 在中间件中设置 cookie 后无法继续
- ffmpeg - FFMpeg 更快地改变视频比特率
- ios - Swift - 创建自定义颜色数组
- python - Google Sheets API 图像公式
- android - 如何在 android studio 中使用环境变量?