четверг, 17 июня 2021 г.

00.05.09 GUI классы. wxGrid

 Самый главный класс для писателей база данных!


Класс wxGrid и классы, связанные с ним, используется для отображения и редактирования табличных данных.


wxGrid поддерживает настраиваемые атрибуты для ячеек таблицы, что позволяет полностью настроить их внешний вид, и использует отдельный класс таблицы сетки (производный от wxGridTableBase) для управления данными, что означает, что его можно использовать для отображения произвольных объемов данных.

И так, для хранения данных используются классы - наследники класса wxGridTableBase (класс таблицы). Для отображения данных класса таблицы может использоваться один или более wxGrid. По умолчанию используется класс wxGridStringTable, который содержит в себе массив строк. Экземпляр такого класса создается при вызове CreateGrid().

Для визуализации содержимого ячейки используются наследники абстрактного базового класса wxGridCellRenderer. Существующие наследники:

Внешний вид ячейки можно дополнительно определить с помощью wxGridCellAttr . Объект этого типа может быть возвращен wxGridTableBase :: GetAttr () .

Для редактирования содержимого ячейки используются наследники абстрактного базового класса wxGridCellEditorСуществующие наследники:


Поехали! Пример работы с гридом:
// Создает объект wxGrid 
grid = new wxGrid( this,
                    -1,
                    wxPoint( 0, 0 ),
                    wxSize( 400, 300 ) );
// Далее, для задания размеров грида вызываем CreateGrid ()
// (100 строк х 10 столбцов)
grid->CreateGrid( 100, 10 );
// Размеры в пикселях для отдельных строк и столбцов:
// in pixels
grid->SetRowSize( 0, 60 );
grid->SetColSize( 0, 120 );
// Задаем строки содержимого грида
grid->SetCellValue( 0, 0, "wxGrid - оооо!" );
// Определяем некоторые строки как read->only
grid->SetCellValue( 0, 3, "Только чтение" );
grid->SetReadOnly( 0, 3 );
// Цвета для содержимого ячеек
grid->SetCellValue(3, 3, "Зеленый на сером");
grid->SetCellTextColour(3, 3, *wxGREEN);
grid->SetCellBackgroundColour(3, 3, *wxLIGHT_GREY);
// Некоторые ячейки можно определить как хранящие числа,
// а не строки. Например, столбец 5 будет хранить числа с плавающей запятой,
// с отображением 6 чисел и точностью 2.
grid->SetColFormatFloat(5, 6, 2);
grid->SetCellValue(0, 6, "3.1415");
Что есть что:
  • wxGrid : сам класс грида.
  • wxGridTableBase : абстрактный базовый класс - поставщика данных грида.
  • wxGridStringTable : простая реализация класса wxGridTableBase, поддерживающая только строковые элементы данных и хранящая их все в памяти (следовательно, подходит только для не слишком больших объемов).
  • wxGridCellAttr : атрибут ячейки, позволяющий настроить ее внешний вид, а также средство визуализации и редактор, используемые для ее отображения и редактирования.
  • wxGridCellAttrProvider : объект, ответственный за хранение и получение атрибутов ячейки.
  • wxGridColLabelWindow: окно, показывающее заголовок столбца грида.
  • wxGridRowLabelWindow: окно, показывающее заголовок строки грида.
  • wxGridCornerLabelWindow: окно, используемое в верхнем левом углу грида.
  • wxGridWindow: окно, представляющее основную часть грида.
  • wxGridCellRenderer : абстрактный базовый класс для объектов, используемых для отображения значения ячейки.
  • wxGridCellStringRenderer : средство визуализации, отображающее ячейку в виде текстовой строки.
  • wxGridCellNumberRenderer : средство визуализации, отображающее ячейку в виде целого числа.
  • wxGridCellFloatRenderer : средство визуализации, показывающее ячейку как число с плавающей запятой.
  • wxGridCellBoolRenderer : средство визуализации, показывающее ячейку как отмеченную или не отмеченную флажком .
  • wxGridCellEditor : абстрактный базовый класс для объектов, используемых для редактирования значения ячейки.
  • wxGridCellStringEditor: редактор ячеек, содержащих текстовые строки.
  • wxGridCellNumberEditor : редактор ячеек, содержащих целые числа.
  • wxGridCellFloatEditor : редактор ячеек, содержащих числа с плавающей запятой.
  • wxGridCellBoolEditor : редактор ячеек с логическим значением.
  • wxGridCellChoiceEditor : редактор, позволяющий выбрать одну из предопределенных строк (и, возможно, ввести новую).
  • wxGridEvent : событие, отправляемое большинством действий wxGrid.
  • wxGridSizeEvent : специальное событие, отправляемое при изменении размера столбца или строки грида.
  • wxGridRangeSelectEvent : специальное событие, отправляемое при выборе диапазона ячеек в гриде.
  • wxGridEditorCreatedEvent : специальное событие, отправляемое при создании редактора ячеек.
  • wxGridSelection: объект, эффективно представляющий выбор в гриде.
  • wxGridTypeRegistry: содержит информацию о типах данных, поддерживаемых гридом.



Комментариев нет:

Отправить комментарий