Page 1 of 1

Работа с wxGrid

Posted: Thu Jul 31, 2008 8:48 am
by SmileGobo
Заранее извиняюсь, если вопрос окажется тупым.
Создал я таблицу вызвал метод AutoSizeRows(), но при помещении в ячейки строк я этого "автосайза" не наблюдаю строки тупо выходят за пределы ширины ячейки.
Вобщем как настроить таблицу чтоб все культурно отображалось строки не заезжали за пределы ширины и все такое.

Re: Работа с wxGrid

Posted: Thu Jul 31, 2008 9:41 am
by tan
Привет.
SmileGobo wrote:Заранее извиняюсь, если вопрос окажется тупым.
Создал я таблицу вызвал метод AutoSizeRows(), но при помещении в ячейки строк я этого "автосайза" не наблюдаю строки тупо выходят за пределы ширины ячейки.
Вобщем как настроить таблицу чтоб все культурно отображалось строки не заезжали за пределы ширины и все такое.
Правильно ли я понял, что вначале вызывается AutoSizeRows(), а потом добавляются реальные данные? В таком случае так и должно быть, поскольку этот метод устанавливает высоту строк в соответствие с их содержимым (на момент вызова метода) (да, а может ты имел в виду все таки AutoSizeColumns()?). Так что ответ такой, вначале заполни в гриде данные, а потом вызывай AutoSize{Columns|Rows}().

Posted: Thu Jul 31, 2008 10:13 am
by SmileGobo
Правильно ли я понял, что вначале вызывается AutoSizeRows(), а потом добавляются реальные данные?
Правильно

Собственно проделал как вы посоветовали в случае с Columns все срабатывает, а с Rows нет - нужно как раз изменение размера строк(и) в зависимости от длинны символьной строки, при постоянной ширине столбца.

ЗЫ что-то не найду в доке метода возвращающего количество строк/стоблцов

Posted: Fri Aug 01, 2008 1:59 pm
by tan
SmileGobo wrote:
Правильно ли я понял, что вначале вызывается AutoSizeRows(), а потом добавляются реальные данные?
Правильно

Собственно проделал как вы посоветовали в случае с Columns все срабатывает, а с Rows нет - нужно как раз изменение размера строк(и) в зависимости от длинны символьной строки, при постоянной ширине столбца.
Ну дык если строка в ячейке не имеет LF внутри, то независимо от длины строки высота ячеек (и строк грида, соответственно) будет всегда одинакова.
SmileGobo wrote: ЗЫ что-то не найду в доке метода возвращающего количество строк/стоблцов

Code: Select all

int wxGrid::GetNumberCols();
int wxGrid::GetNumberRows();

Posted: Sat Aug 02, 2008 8:28 pm
by SmileGobo
Спасибо вы мне очень помогли в нелегком деле освоения GUI :wink:

Posted: Wed Aug 06, 2008 8:31 am
by SmileGobo
Никак не могу понять как получить ячейку, по которой кликнули. Массив не получается объявить:

Code: Select all

#include <wx/dynarray.h>
wxArray y=src_info->GetSelectedRows();
wxArray x=src->GetSelectedCells();

Posted: Wed Aug 06, 2008 2:46 pm
by tan

Code: Select all

wxArrayInt rows = src_info->GetSelectedRows();
wxGridCellCoordsArray cells = src_info->GetSelectedCells();