我已经使用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的情况下使用新的配置值?
您可能没有更新值MIN_VOLTAGE
。MAX_VOLTAGE
和MAX_CURR
,但您没有显示足够的代码来识别问题。
代码加载一次YAML文件(可能在应用程序启动时),然后填充值。如果覆盖您的YAML文件,应用程序中的值将不会自动更改,除非您手动修改它们或将YAML文件重新加载到这些值中。
一种合理的方法是将配置值存储在具有save
和load
方法的类中,然后使用其中的值,并在用户更改配置时更新这些值。修改后调用save
,在应用程序启动时调用load
。