n5321 | 2025年11月2日 10:42

Tags: AutoEM


一个logic 看上去很简单的update,居然花了差不多两天的时间!

目标:在matplotlib的曲线图里添加对照组。

方式:在UI里添加button,选择,读取csv文档 add traces,沿用原始的chart设置!

测试idea: 写了一个try_compare.py,UI, path齐全,分分钟搞定了!

实操:添加进AutoEM。

完全不是那么回事!

try_compare写的logic 跟AutoEM完全不同!try_compare在一段script把所有的东西都包括进去了,所以debug 也极其简单!

在AutoEM中有一个很复杂的操作,因为数据和控制要传到到N个object!他具体的logi大概如下:

  1. page默认生成一个chart! chart是在fig 里面!

  2. UI提供chart的框子——准备填matplot的figure,设置成canva

  3. worker get data

  4. plotting tool 升成figure(用新曲线完全替代)

  5. 再返回到worker

  6. UI清楚原来的figure,添加新的figure

尝试实操!

  1. 更改logic!不在替换figure,考虑用同一个figure,在figure的框架里做删改traces!

    1. 问题是figure里面对于chart的设置有大量的代码,把设置代码从plotting_tool改到init之中,后续recall的时候又会用默认设置。

    2. 放弃新idea,继续用figure替换的思路。

  2. 未做深入思考,考虑增加一个function,plotting_tool生成sim chart,增加一个ref_chart的功能几乎一致的function,来生成ref chart。然后卡住了。

    1. 晚上睡觉才想起本质上是替换的,把设置全部堆到plotting_tool才是正常操作!

  3. 增加新功能,UI里添加button,click以后,可以看到ref chart!

    1. 需要把UI get 到的data 传递到worker,worker生成fig,再传递会UI

    2. 本质上我对signal and slot的逻辑没有搞清楚。

  4. 问题:在这种细节繁复的装配体结构中,数据的传递,logic线的设计,是架构师内容。还蛮麻烦的!

  5. 自己对QT的框架理解本质上不够!

还是需要深入阅读代码!

暂时解决问题!