重构开发龟速进行中

2022年5月25日 847点热度 2人点赞 0条评论

最近一段时间没怎么更新网站内容,一方面因为疫情关系,几乎每天都要核酸检测,然后看孩子上网课,外加带孩子户外活动,实在没有精力弄其他的。另一方面,系统重构基本上推进到了GUI界面的设计上,好多想法还没固定下来,所以代码写的也慢,总之最近确实感到精力不济,进展缓慢。

吐槽一下Python做GUI应用的不便,过去用QT写过周边小工具,虽然有QT Designer这样的优秀工具辅助,但是依然感到不便,有牛刀杀鸡的感觉。想用tkinter吧,没有拖拽式的界面设计工具,想想就头疼。最后我看了看PysimpleGUI的文档和demo,感觉这个框架省点事,就拿它开了坑。

跳进去才发现,SG写简单的单窗体小应用效率是真的高,但是如果你要做包含子窗体的应用,SG就不是那么方便了,子窗体的event,values怎么加入主循环进行条件判断是个问题,一个简单的方案是在while里sg.read_all_windows(),这样做的缺点是在程序初始化过程中,子窗体必须一起实例化,然后显式调用disappear(),而且就算是这样,子窗体依然会在任务栏留下banner,sg这块的实现采用的是调整窗体alpha值实现的,强迫症犯了可真没法接受。而且这样做的另外一个缺点是,如果子窗体要根据某些条件动态实例化,这种方法就没法实现了,因为子窗体必须在程序初始化时实例。但是如果不这样做,在while中动态实例子窗体的话,子窗体的event怎么能够简单优雅的加入主循环中轮询呢,我是没有找到合适的方法,能想到的也就是各种 if else叠加判断,这种代码写出来我是接受不了。这时候又有点怀念QT了。

吐槽了一大堆,代码还是得接着写,在疫情肆虐,百业不兴的当下,这是唯一能让我静下心来做的事。最后贴一个目前界面的截图,还是不够美观,但是尽力了。

QThinker

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

文章评论