Работа с wxGrid Topic is solved

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
SmileGobo
Earned some good credits
Earned some good credits
Posts: 111
Joined: Wed Jul 30, 2008 8:01 am
Location: Russia/MO
Contact:

Работа с wxGrid

Post by SmileGobo »

Заранее извиняюсь, если вопрос окажется тупым.
Создал я таблицу вызвал метод AutoSizeRows(), но при помещении в ячейки строк я этого "автосайза" не наблюдаю строки тупо выходят за пределы ширины ячейки.
Вобщем как настроить таблицу чтоб все культурно отображалось строки не заезжали за пределы ширины и все такое.
tan
wxWorld Domination!
wxWorld Domination!
Posts: 1471
Joined: Tue Nov 14, 2006 7:58 am
Location: Saint-Petersburg, Russia

Re: Работа с wxGrid

Post by tan »

Привет.
SmileGobo wrote:Заранее извиняюсь, если вопрос окажется тупым.
Создал я таблицу вызвал метод AutoSizeRows(), но при помещении в ячейки строк я этого "автосайза" не наблюдаю строки тупо выходят за пределы ширины ячейки.
Вобщем как настроить таблицу чтоб все культурно отображалось строки не заезжали за пределы ширины и все такое.
Правильно ли я понял, что вначале вызывается AutoSizeRows(), а потом добавляются реальные данные? В таком случае так и должно быть, поскольку этот метод устанавливает высоту строк в соответствие с их содержимым (на момент вызова метода) (да, а может ты имел в виду все таки AutoSizeColumns()?). Так что ответ такой, вначале заполни в гриде данные, а потом вызывай AutoSize{Columns|Rows}().
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
SmileGobo
Earned some good credits
Earned some good credits
Posts: 111
Joined: Wed Jul 30, 2008 8:01 am
Location: Russia/MO
Contact:

Post by SmileGobo »

Правильно ли я понял, что вначале вызывается AutoSizeRows(), а потом добавляются реальные данные?
Правильно

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

ЗЫ что-то не найду в доке метода возвращающего количество строк/стоблцов
tan
wxWorld Domination!
wxWorld Domination!
Posts: 1471
Joined: Tue Nov 14, 2006 7:58 am
Location: Saint-Petersburg, Russia

Post by tan »

SmileGobo wrote:
Правильно ли я понял, что вначале вызывается AutoSizeRows(), а потом добавляются реальные данные?
Правильно

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

Code: Select all

int wxGrid::GetNumberCols();
int wxGrid::GetNumberRows();
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
SmileGobo
Earned some good credits
Earned some good credits
Posts: 111
Joined: Wed Jul 30, 2008 8:01 am
Location: Russia/MO
Contact:

Post by SmileGobo »

Спасибо вы мне очень помогли в нелегком деле освоения GUI :wink:
win xp sp2; CodeBlocks/mingw/wxWidgets 2.8.9/wxFormBuilder
web-программирование:PHP,js/Ajax
SmileGobo
Earned some good credits
Earned some good credits
Posts: 111
Joined: Wed Jul 30, 2008 8:01 am
Location: Russia/MO
Contact:

Post by SmileGobo »

Никак не могу понять как получить ячейку, по которой кликнули. Массив не получается объявить:

Code: Select all

#include <wx/dynarray.h>
wxArray y=src_info->GetSelectedRows();
wxArray x=src->GetSelectedCells();
win xp sp2; CodeBlocks/mingw/wxWidgets 2.8.9/wxFormBuilder
web-программирование:PHP,js/Ajax
tan
wxWorld Domination!
wxWorld Domination!
Posts: 1471
Joined: Tue Nov 14, 2006 7:58 am
Location: Saint-Petersburg, Russia

Post by tan »

Code: Select all

wxArrayInt rows = src_info->GetSelectedRows();
wxGridCellCoordsArray cells = src_info->GetSelectedCells();
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
Post Reply