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 提供的基本容器包括
表单:一个顶级窗口,可以包含单个控件,通常是另一个容器。窗口将自动调整大小以适应其内容,但也可以静态调整大小。
框:此容器可以用一个或多个控件垂直或水平布局填充。可以将每个子控件设置为使用所需空间的最小值,或在布局方向上填充框。在垂直于布局的方向上,例如水平布局中的垂直方向,将采用能够容纳所有子控件的最小可能尺寸。因此,在此示例中,将使用容纳控件的最小高度。
表格:此容器可以在网格中组织一个或多个控件。开发人员可以设置表格中的行数和列数,以及控件在网格中的位置。
滚动视图:此容器可以包含单个子控件,如果内容不适合可用空间,则会添加滚动条。