Новая статья: Применение контейнеров для компоновки графического интерфейса: класс CBox

 

На mql5.com опубликована статья Применение контейнеров для компоновки графического интерфейса: класс CBox:

В данной статье описан альтернативный метод создания графического интерфейса на основе схем компоновки и контейнеров при помощи менеджера компоновки, а именно класса CBox. Класс CBox представляет собой вспомогательное средство управления, которое действует как контейнер основных элементов управления графического интерфейса. Он упрощает составление графических панелей, а иногда и сокращает время написания кода.

Самым простым способом создания графического интерфейса для какого-либо приложения является абсолютное расположение элементов управления внутри его диалогового окна. Тем не менее, иногда подобный подход к проектированию графического пользовательского интерфейса может быть неудобным и даже практически нецелесообразным. В данной статье описан альтернативный метод создания графического интерфейса на основе схем компоновки и контейнеров при помощи менеджера компоновки, а именно класса CBox.

Реализованный и используемый в данной статье класс менеджера компоновки в общих чертах схож с классами, применяемыми в некоторых широко распространенных языках программирования, например BoxLayout (Java) и Pack geometry manager (Python/Tkinter).


3.1. Стили компоновки

CBox предлагает два стиля компоновки: вертикальный и горизонтальный.

Базовая компоновка горизонтального стиля выглядит следующим образом:

Горизонтальный стиль класса CBox

Рис. 2. Горизонтальный стиль (центрированный)

Базовая компоновка вертикального стиля выглядит следующим образом:

Вертикальный стиль класса CBox

Рис. 3. Вертикальный стиль (центрированный)

По умолчанию CBox применяет горизонтальный стиль.

Комбинация данных типов компоновки (возможно, с использованием нескольких контейнеров) позволяет воссоздать практически любой вариант графического интерфейса. Более того, размещение элементов внутри контейнеров допускает сегментированное проектирование. Иными словами, вы можете изменять размер и расположение элементов управления в одном контейнере без воздействия на элементы других контейнеров.

Автор: Enrico Lambino