Название: Делегат для клетки Отправлено: juvf от Февраль 03, 2012, 13:30 код добавляет делегат для колонки 2
Код: QTreeView *table = new QTreeView; Название: Re: Делегат для клетки Отправлено: Bepec от Февраль 03, 2012, 13:37 Сделать это в переопределённом делегате.
Который у тебя сейчас delegate. Название: Re: Делегат для клетки Отправлено: juvf от Февраль 03, 2012, 13:42 Сделать это в переопределённом делегате. Т.е. в IntegerDelegate нужно проверить № строки и вернуть в методе IntegerDelegate::сreateEditor() виджет либо спинбокс, либо лайнЕдит. Была такая мысль, но как-то на костыль похоже. А в редакторах свойств, типа PropertyBrowser, так же делают?Который у тебя сейчас delegate. Название: Re: Делегат для клетки Отправлено: Bepec от Февраль 03, 2012, 13:43 Возьми и посмотри :D
Сам подумай, что лучше - 3 разных делегата для 1 клетки, или 1 делегат, в котором 3 разных вызова? PS ради интереса делал себе модельку с 10,000,000 элементами. 1 делегат. А если б их было 3? :D Название: Re: Делегат для клетки Отправлено: juvf от Февраль 03, 2012, 13:52 придется посмотреть.
ps. для 100500 элементов я представля это так: Всего 3 делегата. при создании строк смотрю что за сторока и чем её редактировать. 1-ая строка - это высота, значит к ячейке (0,2) прикручиваю делегат IntegerDelegate 2-я это ширина, значит к ячейке (1,2) прикручиваю делегат IntegerDelegate 3-я это цвет, значит к ячейке (2,2) прикручиваю делегат СolorDelegate 4-я это текст, значит к ячейке (2,2) прикручиваю делегат TextDelegate ... получается всего 3 делегата (по одному экземпляру на класс), и в каждой строке колонки 2 вызывается нужный. Пойду учить уроки про PropertyBrowser (( Название: Re: Делегат для клетки Отправлено: Bepec от Февраль 03, 2012, 13:57 Умница. Теперь умножь эти операции на количество видимых ячеек :) Примерно у меня было тысячи 4 ^.^
Название: Re: Делегат для клетки Отправлено: juvf от Февраль 03, 2012, 14:05 ааааа, типа долго будет строить таблицу. В моём случае экономия на спичках. Да и вообще спор ни о чем.
Цитировать что лучше - 3 разных делегата для 1 клетки, или 1 делегат, в котором 3 разных вызова В моем случае лучше для каждой клетки указывать делегат на момент создания клетки. У меня этих клеток не более 100. И нет возможности в самом делегате понять какой виджет нужен для редактирования. Если нельзя для отдельной клетки делегат - так нельзя и точка. Буду как-то выкручиваться. В чем спор то?Название: Re: Делегат для клетки Отправлено: Bepec от Февраль 03, 2012, 14:12 В делегате можно узнать, понять, проанализировать информацию, хранящуюся в ячейке, её месторасположение/формат и вызвать соответствующий делегат.
Так что 1 делегат спокойно справится со всеми необходимыми тебе операциями. Название: Re: Делегат для клетки Отправлено: juvf от Февраль 03, 2012, 14:46 В делегате можно узнать, понять, проанализировать информацию, хранящуюся в ячейке, её месторасположение/формат и вызвать соответствующий делегат. +1Так что 1 делегат спокойно справится со всеми необходимыми тебе операциями. Говорю же, нет возможности анализировать информацию хранящуюся в ячейке, от сюда и ноги проблемы. Название: Re: Делегат для клетки Отправлено: Bepec от Февраль 03, 2012, 15:09 Парень, аууууу...
Тебе в делегат передаётся указатель на модель... Привести её к своему типу, и в твоём распоряжении все данные твоей модели, вплоть до адресов памяти третьей сбоку сине-зелёной ячейки с белым крестиком. |