Windows应用程序编程&wxPython

2024-04-28 23:25:40 发布

您现在位置:Python中文网/ 问答频道 /正文

在开发我的一个项目时,我意识到我需要在会话之间保持某种程度的持久性,例如当用户执行应用程序、更改某些首选项并关闭应用程序时。下次用户执行应用程序时,无论是在重启后还是15分钟后,我希望能够保留已更改的首选项。在

我的问题与这种坚持有关。是否使用win32 API或MFC框架编程应用程序。。或者使用更高级别语言(如wxPython或wxRuby)的更新工具,如何维护我所指的持久性类型?它是作为一个临时文件写入磁盘吗?是否保存到某个注册表设置中?有没有其他层是我不知道的?在


Tags: 项目用户框架api语言应用程序编程wxpython
2条回答

我建议分两步来做。在

  1. 第一步是保存您的首选项。作为 字符串,你可以

    (一) 使用任何xml库或输出xml 手动输出字符串并读取 类似于字符串

    b)只需使用pickle模块将prefs对象作为字符串转储

    c)以某种方式从prefs生成一个字符串,您可以将其作为prefs读回,例如使用yaml、config、JSON等实际上,当simplejson使其变得如此容易时,JSON是一个不错的选择。

  2. 一旦您准备好了用于转换字符串和从字符串转换的方法,您只需要将它存储在保存字符串的某个位置,并且您可以在下一次读回它,因为您可以这样做

    a)使用wx.配置它保存到windows中的注册表和其他位置,这取决于平台,所以您不必担心它保存在哪里,您只需以独立于平台的方式读回值。但如果你想用wx.配置用于直接保存阅读首选项。

    b)直接保存首选项。字符串到OS分配给应用程序的文件夹中的文件,例如windows中的app data文件夹。

与使用wx.配置为了保存它,你可以很容易地改变将来数据的保存位置,例如在将来需要上传首选项时。你可以上传首选项。字符串。在

有不同的方法来做到这一点多年来不断发展。在

这些方法包括(但不限于):

  1. 注册表项。在
  2. INI文件。在
  3. XML文件
  4. 简单二进制/文本文件
  5. 数据库

现在,大多数人都是用特定于用户的AppData文件夹中的XML文件来做这种事情的。怎么做是你的选择。例如,对于简单的事情,数据库可能会被过度破坏,对于巨大的持久化对象,registry是不合适的。你必须看到你在做什么,并相应地去做。在

关于这个主题的Here is a very good discussion

相关问题 更多 >