我的代码中的不可见对象应该如何与它们的可见小部件对应物相关联?

2024-04-26 06:45:43 发布

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

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

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

例如,假设我有一个来自语言词典的词条列表。每个条目都是具有各种属性和函数的抽象数据对象。每个条目也以图形化的方式表示为用户可以与之交互的小部件。你知道吗

我认为有四种可能的组织方式:

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

现在我不确定是否有一些关于这方面的常规协议,我也不确定这些可能的安排是否真的有影响。你知道吗

最佳做法是什么?你知道吗


Tags: 数据对象代码语言图形列表属性部件
1条回答
网友
1楼 · 发布于 2024-04-26 06:45:43

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

Model-View-Controller

其思想是,您的数据对象(模型)可以远离您的小部件(视图)。它们由控制器协调。你知道吗

这在Objective-C/Cocoa中非常普遍,在较小程度上,在Android中也是如此。你知道吗

大多数现代web框架也基于这个概念。你知道吗

编辑:至少在某种程度上,QT也可以:

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

相关问题 更多 >