wx.Config很难过

时间:2012-09-16 13:43:58

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

我的问题是我想为一个应用程序创建一个配置文件,但事情并不像它们缝合那么简单。所以我看过一个教程,其中配置文件包含宽度和高度,并且可以检索等号后面的值并用于确定帧的大小。在那里,做到了,一切都很有效。奇怪的是,这个接缝仅适用于某些关键词,就好像我在配置文件中使用的那样,也是一个名为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

在myconf中的位置

   width=400
   height=250
   frequency=3000 

因此它显示高度,宽度而不是频率,因为freq它只给出0,这适用于我在配置文件中使用的任何其他单词。我猜测只能在配置文件中使用某些关键词,因此在使用wxPython时可以识别它们。

如果是这样,我在哪里可以得到一些我可以用来制作配置文件的密钥列表?

3 个答案:

答案 0 :(得分:0)

你能做的就是自己阅读这些文字:

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

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

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