MySQL Workbench 手册  /  扩展 Workbench  /  使用 MForms 为插件添加 GUI

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

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

MForms 容器

考虑到在不同平台上使用绝对坐标系的困难,MForms 采用容器来执行自动布局。MForms 提供的基本容器包括

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

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

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

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