37.6. FrameWork —交互式应用程序框架

FrameWork模块包含的类共同为交互式 Macintosh 应用程序提供框架。程序员pass创建覆盖 Base Class 的各种方法的子类来构建应用程序,从而实现所需的Function。覆盖Function通常可以在各种不同级别上完成,即,以非标准方式处理单个对话框窗口中的单击,则不必覆盖完整的事件处理。

Note

该模块已在 Python 3.x 中删除。

FrameWork的工作已经停止了,现在PyObjC可用于从 Python 进行完整的 Cocoa 访问,并且文档仅描述了最重要的Function,而没有以最合乎逻辑的方式描述。检查源或示例以获取更多详细信息。以下是在 MacPython 新闻组上发布的有关FrameWork的优点和局限性的一些 Comment:

Note

FrameWork的强项是它允许您在许多不同的地方进入控制流。例如,W使用了一种不同的方式来启用/禁用菜单,并且可以直接插入而其余部分保持不变。 FrameWork的弱点是它没有抽象的命令界面(但这应该不难),它的对话框支持很少,并且不存在控件/工具栏支持。

FrameWork模块定义以下Function:

除了可调用对象之外,回调还可以是字符串。在这种情况下,菜单选择会导致在最上方的窗口和应用程序中查找方法。方法名称是带有'domenu_'的回调字符串。

调用MenuBar fixmenudimstate()方法可基于当前的前窗口为所有菜单项设置正确的调光。

37.6.1. 应用对象

应用程序对象具有以下方法,其中包括:

事件循环分为许多小部分,每个小部分都可以覆盖。默认方法负责将事件调度到窗口和对话框,处理拖动和调整大小,Apple 事件,非 FrameWork 窗口的事件等。

通常,如果事件已完全处理,则所有事件处理程序都应返回1,否则应返回0(例如,因为前窗口不是 FrameWork 窗口)。这是必需的,以便可以将更新事件等传递到其他窗口,例如 Sioux 控制台窗口。 * our_dispatch *或其被调用者内部不允许调用MacOS.HandleEvent(),因为如果pass Python 内部循环事件处理程序调用代码,则可能导致无限循环。

返回旧的开/关值。

37.6.2. 窗口对象

窗口对象具有以下方法,其中包括:

37.6.3. ControlsWindow 对象

除了Window对象,ControlsWindow 对象还具有以下方法:

37.6.4. ScrolledWindow 对象

ScrolledWindow 对象是具有以下额外方法的 ControlsWindow 对象:

37.6.5. DialogWindow 对象

除了Window对象,DialogWindow 对象还具有以下方法:

首页