скрытая информация в wxGrid - PullRequest
1 голос
/ 11 ноября 2008

У меня есть wxGrid, который я заполняю динамически. Я хотел бы хранить некоторую информацию в каждой строке, которая не должна отображаться пользователю. Каков наилучший способ связать данные со строкой? Должен ли я просто создать скрытый столбец или есть лучший способ?

Ответы [ 2 ]

3 голосов
/ 11 ноября 2008

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

В качестве примера смотрите демонстрацию сетки в каталоге примеров wxWidgets, в частности класс BugsGridTable . Что вы заметите, так это то, что вы не обязательно сохраняете строки, которые будет отображать сетка, но вы можете отформатировать данные в методе GetValue () . Это может быть намного лучше, как с точки зрения потребления памяти, так и потому, что вы можете изменять формат отображаемых данных на лету.

Переход к пользовательскому базовому классу таблицы сетки оказал большое влияние на скорость, потребление памяти и функциональность для сетки данных набора результатов FlameRobin , инструмента администрирования для реляционной базы данных Firebird. Вы всегда можете проверить его исходный код, чтобы узнать, как мы используем wxGrid.

0 голосов
/ 08 апреля 2015

Сохраните значение в метке строки с помощью SetRowLabelValue и скройте метки строки.

...