2

在编写 GUI 时(通常使用 Python 和 PyQt4),我尝试整齐地组织我的代码,我经常面临同样的问题:

我的代码中的不可见对象(数据)应如何与其可见的小部件对应物(图形表示)相关联?

例如,假设我有一个语言词典中的条目列表。每个条目都是具有各种属性和功能的抽象数据对象。每个条目还以图形方式表示为用户可以与之交互的小部件。

我相信有四种可能的组织方式:

  1. 小部件对象是数据对象的子对象;
  2. 数据对象是小部件对象的子对象;
  3. 小部件对象和数据项合并为一个对象(数据是小部件的属性);
  4. 小部件对象和数据对象分开存在,后者被馈入前者(例如作为*args)

现在我不确定在这方面是否有一些传统的协议,我也不确定这些可能的安排是否真的会产生影响。

最佳做法是什么?

4

1 回答 1

2

我从未使用过 Python 或 QT,但听起来您正在寻找一个名为:

模型-视图-控制器

这个想法是,您的数据对象(模型)可以远离您的小部件(视图)。它们由控制器协调。

这在 Objective-C / Cocoa 中非常普遍,在 Android 中也少见。

大多数现代 Web 框架也基于此概念。

编辑:至少在某种程度上,QT 也是如此:

http://doc.qt.nokia.com/qq/qq10-mvc.html

于 2012-08-16T03:52:16.977 回答