覆盖GUI中的yaml配置文件(python)



我已经使用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_VOLTAGEMAX_VOLTAGEMAX_CURR,但您没有显示足够的代码来识别问题。

代码加载一次YAML文件(可能在应用程序启动时),然后填充值。如果覆盖您的YAML文件,应用程序中的值将不会自动更改,除非您手动修改它们或将YAML文件重新加载到这些值中。

一种合理的方法是将配置值存储在具有saveload方法的类中,然后使用其中的值,并在用户更改配置时更新这些值。修改后调用save,在应用程序启动时调用load

相关内容

  • 没有找到相关文章

最新更新