C.4 Добавление графического интерфейса в плагин с использованием MForms
MySQL Workbench реализован с использованием C++ ядра на стороне сервера и нативным интерфейсом для каждой поддерживаемой платформы. В настоящее время интерфейс реализован с использованием Windows Forms в Microsoft Windows, GTK+ в Linux и Cocoa в OS X/macOS. Этот подход позволяет приложению иметь нативный вид и ощущения, при этом сокращая объём работы, необходимой для поддержания проекта. Тем не менее, функциональность графического интерфейса, требуемая MySQL Workbench, может быть обеспечена подмножеством графических операций. Они реализованы в кроссплатформенной библиотеке графического интерфейса MForms. Это ещё больше сокращает усилия по разработке, поскольку разработчики плагинов могут использовать MForms вместо написания кода, специфичного для интерфейса каждой поддерживаемой платформы. Это также способствует согласованности работы на всех платформах. MForms написан на C++, но предоставляет интерфейс Python. Для его использования код Python должен импортировать модуль mforms.
Контейнеры MForms
Учитывая проблемы использования абсолютной системы координат на разных платформах, MForms использует контейнеры, которые выполняют автоматическое макетирование. Основные контейнеры, которые предоставляет MForms, включают:
Форма (Form): Окно верхнего уровня, которое может содержать один элемент управления, обычно другой контейнер. Размер окна будет автоматически подстраиваться под содержимое, но также может быть задан статически.
Блок (Box): Этот контейнер может заполняться одним или несколькими элементами управления в вертикальной или горизонтальной компоновке. Каждый дочерний элемент управления может быть настроен на использование минимального необходимого пространства или заполнение блока в направлении компоновки. В направлении, перпендикулярном компоновке, например, вертикальном в горизонтальной компоновке, будет использоваться минимально возможный размер, позволяющий разместить все дочерние элементы управления. Таким образом, в этом примере будет использоваться наименьшая возможная высота, достаточная для размещения элементов управления.
Таблица (Table): Этот контейнер может организовывать один или несколько элементов управления в таблице. Количество строк и столбцов в таблице, а также расположение элементов управления в сетке могут быть заданы разработчиком.
Прокручиваемый элемент (ScrollView): Этот контейнер может содержать один дочерний элемент управления и добавляет полосы прокрутки, если содержимое не помещается в доступное пространство.
© 2025 Oracle
Licensed under the GPLv2 License.