MySQL 工作台  / 附录 C 扩展工作台  /  C.4 使用 MForms 向插件添加 GUI

C.4 使用 MForms 向插件添加 GUI

MySQL Workbench 是使用 C++ 核心后端和每个受支持平台的本机前端实现的。目前,前端在 Microsoft Windows 上使用 Windows Forms,在 Linux 上使用 GTK+,在 OS X / macOS 上使用 Cocoa。这种方法允许应用程序具有本地外观,同时减少维护项目所需的工作量。然而,MySQL Workbench 所需的 GUI 功能可以通过图形操作的子集来满足。这些在跨平台 GUI 库 MForms 中实现。这进一步减少了开发工作,因为插件开发人员可以使用 MForms 而不是为每个支持的平台编写前端特定代码。这也有助于跨所有平台的操作一致性。MForms 是用 C++ 编写的,但提供了一个 Python 接口。要使用它,Python 代码必须导入mforms模块。

MForms 容器

考虑到跨平台使用绝对坐标系的问题,MForms 采用了执行自动布局的容器。MForms 提供的基本容器包括:

  • Form:一个顶层窗口,可以包含一个控件,通常是另一个容器。窗口将自动调整大小以适应其内容,但也可以静态调整大小。

  • Box:此容器可以在垂直或水平布局中填充一个或多个控件。可以将每个子控件设置为使用所需的最小空间,或沿布局方向填充框。在垂直于布局的方向上,例如水平布局中的垂直方向,将采用能够容纳所有子控件的尽可能小的尺寸。因此,在此示例中,将使用可能容纳控件的最小高度。

  • Table:此容器可以在网格中组织一个或多个控件。表格中的行数和列数,以及控件在网格中的位置,都可以由开发人员设置。

  • ScrollView:此容器可以包含单个子控件,如果内容不适合可用空间,则添加滚动条。