wxpython程序中自定义配置,用户可以开启或关闭工具提示、改变字体、改变默认下载路径等等.
大多数程序都有一个叫做“选项(preferences)”的菜单项. 应用程序设置会保存到硬盘,因此用户不必每次在应用程序启动时去修改配置.[more…]
在 wxPython 中,有个 wx.Config 类来完成这方面的事情.
linux 系统中,设置保存在一个简单的隐藏文件中. 该文件默认位于用户主目录下(home directory). 当然配置文件的位置是可以改变的. 文件名在 wx.Config 类的构建器用指定.
专题:wxpython中文教程
以下例子中,可以配置窗口大小. 如果没有配置文件,窗口的高和宽被设置成默认的 250 像素.
用户可以在 200-500 像素范围内设置窗口的宽和高.
在保存了设定值后,在重启程序,窗口尺寸将设置为设定的大小.
例子 :
#!/usr/bin/python
#coding=utf-8
#myconfig.py
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, id, title):
self.cfg = wx.Config('.myconfig')
if self.cfg.Exists('width'):
w, h = self.cfg.ReadInt('width'), self.cfg.ReadInt('height')
else:
(w, h) = (250, 250)
wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition,
wx.Size(w, h))
wx.StaticText(self, -1, '宽:', (20, 20))
wx.StaticText(self, -1, '高:', (20, 70))
self.sc1 = wx.SpinCtrl(self, -1, str(w), (80, 15), (60, -1),
min=200, max=500)
self.sc2 = wx.SpinCtrl(self, -1, str(h), (80, 65), (60, -1),
min=200, max=500)
wx.Button(self, 1, '保 存', (20, 120))
self.Bind(wx.EVT_BUTTON, self.OnSave, id=1)
self.statusbar = self.CreateStatusBar()
self.Center()
def OnSave(self, event):
self.cfg.WriteInt("width", self.sc1.GetValue())
self.cfg.WriteInt("height", self.sc2.GetValue())
self.statusbar.SetStatusText('Configuration Saved, %s' % wx.Now())
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, 'myconfig.py')
frame.Show(True)
self.SetTopWindow(frame)
return True
app = MyApp(0)
app.MainLoop()
这个例子中配置文件内容. 它有两个键值对:
$ cat .myconfig
width=500
height=400
如图:
图:myconfig.py