我使用PyQt4实现了一个GUI界面。在我的GUI界面中,我有一个配置选项卡,用户可以在其中更改配置文件(使用行编辑)。我可以使用这些输入的值覆盖GUI中的yaml配置文件(我有加载,保存和覆盖的按钮),但是当这些变量实际用于其他模块时,它会从原始配置值中读取。这就是我在使用变量的模块中读取配置文件的方式:
with open("config.yaml", "r") as f:
config = yaml.safe_load(f)
MIN_VOLTAGE = config['test1']['minVolt']
MAX_VOLTAGE = config['test1']['maxVolt']
MAX_CURR = config['test1']['maxCurr']
我的配置文件如下所示:
test1:
maxCurr: 5
maxVolt: 5
minVolt: -5
test2:
maxVolt: 8
setCurr: 3
如何在不退出GUI的情况下使用新的配置值?
答案 0 :(得分:0)
您可能不会更新值MIN_VOLTAGE
。在编写YAML文件后MAX_VOLTAGE
和MAX_CURR
,但您没有显示足够的代码来识别问题。
您编码加载YAML文件一次(可能在应用程序启动时),然后填充值。如果覆盖YAML文件,除非您手动修改它们或将YAML文件重新加载到这些值中,否则应用程序中的值不会自动更改。
一种理智的方法是将配置值存储在具有save
和load
方法的类中,然后使用其中的值,并在用户更改配置时更新它们。修改后调用save
,应用程序启动时调用load
。