使用 COM 构建 GUI 应用程序
1. 引言
在之前的开发中,我们构建了一些 Python 类,可在命令行下完成金融领域的有用工作。现在,我们要将这些 Python 类作为 COM 服务器嵌入到传统的 GUI 中,为应用程序提供核心引擎。
2. 应用场景与需求
可以设想基于这些类开发一系列应用程序,每个应用专注于特定任务,如查看和编辑数据、比较账本集、生成预测和编排报告等。首先,我们需要一个账户集浏览器,它能展示与命令行版本相同类型的视图,包括账户列表、账户详情和按日期排序的“日记账”,还应允许编辑现有交易并添加新交易。
3. 示例浏览器
我们的示例浏览器使用 Visual Basic (VB) 6 编写,这里仅介绍部分功能和代码,完整应用程序及代码示例可在 http://starship.python.net/crew/mhammond/ppw32/ 获取。此外,我们还使用 Delphi 实现了一个简化版的浏览器。大多数主流开发环境都支持 COM,因此可以轻松将后续内容适配到你喜欢的开发环境中。
4. 设计 COM 服务器
我们希望将 Transaction 和 BookSet 类作为 COM 服务器公开。由于 COM 公开的方法处理参数的方式有时与普通 Python 方法不同,因此需要考虑合适的设计模式。以下是几种设计模式:
-COM 基类,纯 Python 子类:定义一个基