【问题标题】:Having a hard time with wx.Config使用 wx.Config 时遇到困难
【发布时间】:2012-09-16 13:43:57
【问题描述】:

我的问题是我想为一个应用程序制作一个配置文件,但事情并不像他们缝合那么简单。所以我看过一个教程,其中一个配置文件包含宽度和高度,等号后面的值可以被检索并用于建立框架的大小。去过那里,做到了,一切正常。奇怪的是,这个接缝只对一些关键词起作用,就像我在配置文件中使用的一样,还有一个名为 freq 的参数,它没有像使用宽度、高度参数那样检索它的值。

例如,如果我有这样一段代码:

   self.cfg = wx.Config('myconf')
   wid = self.cfg.ReadInt('width')
   hei = self.cfg.ReadInt('height')
   freq = self.cfg.ReadInt('frequency')
   print wid, hei, freq

在我的配置文件中

   width=400
   height=250
   frequency=3000 

所以它显示高度、宽度但不显示频率,至于频率它只给出 0,这发生在我在配置文件中使用的任何其他词。我猜在配置文件中只能使用某些关键字,因此在使用wxPython时可以识别它们。

如果是这样,我在哪里可以获得可以用于制作配置文件的那些键的列表?

【问题讨论】:

  • wanna 不是一个真实的词,它是俚语。应该是“我想做……”

标签: python user-interface wxpython python-2.7 configuration-files


【解决方案1】:

就个人而言,我建议使用 Python 附带的 ConfigParserConfigObj(我更喜欢它)。如果您正在尝试保存小部件属性/设置,那么您可能还想查看PersistenManager

【讨论】:

  • 嘿,非常感谢。 ConfigParser 正是我所需要的,并希望通过 wx.Config 来实现。特别是因为您还可以按部分组织配置文件。我不知道 wx.Config 有什么问题,但它似乎并不总是有效。反正对我来说。
【解决方案2】:

你可以做的是自己阅读这些行:

F = open('myconf', 'r')
for line in F.read().split('\n'):
    switchres = { 'frequency': print(line.split('=')[1]),
                            # add the rest
                            }
    switchres[line.split('=')[0]]

【讨论】:

    【解决方案3】:

    wxPython 是 wxWidgets 的包装器(或绑定器),它是一个 C++ 库。

    因此 wx.Config 或 wx.FileConfig 适用于没有特定方法处理这些类型的配置文件的 C++(仍然 wx.Config 旨在在平台之间移植)。

    在 Python 中,您已经拥有 ConfigParser 模块,但请记住:

    • 某些 wxPython 类可以与 wx.Config 一起使用,例如 wx.FileHistory,
    • 如果您想使用特定于平台的方式存储配置(如 Windows 中的注册表),请使用 wx.Config。

    【讨论】:

      猜你喜欢
      • 2017-05-20
      • 1970-01-01
      • 2011-07-25
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 2012-10-31
      • 1970-01-01
      • 2011-01-02
      相关资源
      最近更新 更多