关于pysimplegui的layout重复使用问题

2023年2月12日 808点热度 1人点赞 0条评论

我感觉这个问题算是用pysimplegui写界面时候一个容易遇到坑,记录一下。

对于多窗体应用,如果在生成子window之前,其所用的layout单独在别的模块中定义,并在生成window时进行引用,那么这个子window在调用close后,想要重复显示的时候就会报错,提示layout不能reuse。

解决这个问题的方式是不要直接引用layout,在调用window之前予以即时的layout变量定义,然后传入window。这样可以解决问题,但不好的地方是会造成代码冗长,一个合理的解决方案是在其他模块中定义函数,然后将子窗体涉及的layout代码和事件处理逻辑代码都放在函数中,然后主窗体的event里进行调用。

这点上其实我挺想吐槽的,因为这不符合前后端分离的设计模式,但是如果使用pysimplegui这个包写多窗体应用,除此之外别无它法,这也是用pysimplegui写的程序中,layout大多数都包裹在函数体中的原因。

QThinker

前地产从业者,假装是个程序员,热爱编程与交易 自研QThinker量化交易框架

文章评论