菜鸟问题:wxpython 写的程序,如何保存用户设置?

Jackyma1981 2009-08-17 04:10:21
本人以前没有过实际项目经验。学的东西也都是入门级的。
现在学习python过程中,现在做一个软件的用户界面部分,是用wxpython实现的。

想问问如何保存用户设置。

我们平时用的一些软件,比如编辑器,和浏览器,都有各种功能的设置窗口,用户改变一些设置后,点击“确定”或“保存”各种设定就能够保存。

请问这些通常是如何实现的?python中又是怎么实现呢?

--
好好学习,天天向上!
Good good study, day day up!
Study well and make progress every day!

Python beginner :http://jackyma1981.blogspot.com
...全文
318 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
海楓 2010-02-06
  • 打赏
  • 举报
回复
想簡單的話直接用pickle吧。
直接將配置文件內容作為python對象讀入,直接操作。
yzx714 2010-02-02
  • 打赏
  • 举报
回复
可以保存为设置文件,然后从设置文件读取信息
也可以直接把类写到文件,然后直接读取类
xiaokang007 2010-02-02
  • 打赏
  • 举报
回复
同样的问题,等待高人解答
Semigod 2009-09-10
  • 打赏
  • 举报
回复
使用自定义事件
Jackyma1981 2009-09-10
  • 打赏
  • 举报
回复
用wxpython写了一个界面,包含一个listbox,和treelistctrl控件。这两个控件要显示的数据结构是一个字典,使用limodou大哥的dict4ini存在一个config.ini文件里.
别的窗口的事件会改变config.ini文件的内容,现在的问题是config.ini文件更新后,listbox和treelistctrl控件显示的内容如何刷新?
窗口关闭重启后更新后的数据可以显示。有什么方法可以让程序加载新的数据?

Jackyma1981 2009-09-10
  • 打赏
  • 举报
回复
rec = d4i.DictIni('remote_config.ini')
remote_configs = rec.remote_configs._items #一个字典型数据,后面的treelistctrl要显示的内容。
上面是我定义的全局变量,
我定义了一个按钮点击事件。
我的想法先清空数据,然后重新建立数据对象,重建窗口。
下面是我写的代码,可是运行后提示错误
UnboundLocalError: local variable 'remote_configs' referenced before assignment

我要怎么实现呢?请高手指教!谢谢了


def OnApply(self, event):

#self.Destroy()
remote_configs.clear() #先清空数据
rec = d4i.DictIni('remote_config.ini') # 然后再建立一个数据对象
remote_configs = rec.remote_configs._items # 也是一个数据对象

self.parent.Close() #把现有窗口关闭
dlg = wx.Dialog(None, -1, title='Remote Setting Dialog',size =(500,500),style = wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER)
remote = RemotePanel(dlg,self.log) #重新建立窗口对象
rec.save()
#dlg.SetSize(dlg.GetBestSize())
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(remote,1,wx.EXPAND)
dlg.SetSizer(sizer)
#sizer.Fit(dlg)
#dlg.SetAutoLayout(True)
dlg.ShowModal()
dlg.Destroy()


Semigod 2009-09-08
  • 打赏
  • 举报
回复
wx中有专门的类为你解决这个问题。先用下面的代码在程序入口初始化config类,然后,在需要的地方保存或读取config 信息。当然,你也可以通过参数设置让它将信息保存到注册表(不推荐)里而不是文件中。

    config = wx.FileConfig(wx.EmptyString, wx.EmptyString, "myapp.ini", wx.EmptyString, wx.CONFIG_USE_LOCAL_FILE)
wx.ConfigBase_Set(config)



读取和写入
        config = wx.ConfigBase_Get()
dlg.username = config.Read("username", "")
config.Write("username", dlg.username)


zanpen2000 2009-09-06
  • 打赏
  • 举报
回复
给你个参考:

http://www.python8.org/a/fenleiwenzhang/wenjiangeshi/
thy38 2009-08-18
  • 打赏
  • 举报
回复
不建议放在注册表。个人觉得设置内容不多的话就放在XMl中吧,反正Python操纵XML很方便。这样有个好处,系统重装后设置也不会丢。
cppfaq 2009-08-18
  • 打赏
  • 举报
回复
这些一般是保存在系统注册表里面
关于如何操作注册表,可以参考这里
DarkChampion 2009-08-17
  • 打赏
  • 举报
回复
可以存在本地文件中,也可以存在注册表中

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧