类库大魔王
类库大魔王 多年C++、Go项目经验,长期从事跨平台(Windows/macOS/iOS/Android)应用架构设计与开发。

准备实现配置功能


  今天粗略考察了一下Code::Blocks/CodeLite/notepad++的配置功能,发现需要做不少工作。
  和外部工具特性一样,配置功能也需要一个用户界面,但这用户界面却更复杂,因为配置选项有各种不同的应用场景。总体上看来,我比较喜欢Code::Blocks的那种配置对话框,最上边是一个static text控件,中间是一个listbook,最下边是几个标准按钮。查了下wxLua的文档,这种界面效果用wxLua基本上可以实现。从代码中可以看到,Code::Blocks是用XRC这种协议实现的,这样的好处是界面和逻辑代码分离,我也一直觉得通过完全通过代码来构造用户界面实在很土,效率又低,但我又不知道有什么工具可以方便地进行用户界面设计并生成XRC,特别是其中有自定义的控件。不过现在既然是决定用wxLua实现,也没办法了,就继续用代码生成界面吧。
  我要加入配置功能,主要是为了支持用户可以自定义编辑器的各种设置,特别是各个lexer的风格,于是又看了一下那三个软件的配置文件的存储格式。前些天我一直在想的是,用sqlite3数据库来存储配置内容,今天看了看boost::property_tree,觉得这个库似乎不错,接口使用起来也还算方便,而且屏蔽了底层存储格式细节,目前可以支持INFO/INI/JSON/XML格式,于是我又想把这个库的一些常用接口封装一遍给Lua用,但是又有点担心这些格式在存储时有大量冗余信息,不如sqlite3格式紧凑,而编辑器的风格定义又会有很多信息,所以还得仔细考虑一下,明天就先尝试把编辑器风格定义都用XML描述一遍看看效果,如果实在是冗余信息太多,再用sqlite3吧。

感觉本文不错,不妨小额鼓励我一下!
如果你有Visa、MasterCard之类的国际银行卡,也可以考虑以下选项:
如果你看不到评论框,说明Disqus被墙了。