Russian Qt Forum
Май 18, 2024, 17:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: делегат для одной ячейки таблицы - это возможно?  (Прочитано 4651 раз)
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« : Июнь 06, 2010, 18:08 »

нужно, чтобы в одной колонке были в разных ячейках разные значения, в одних спин-боксы с выбираемым значением из диапазона, в других просто значения, причем не редактируемые, устанавливаются только программно

не вижу возможности установить делегата для отдельной ячейки, вижу только на таблицу, строку или колонку - ткните носом, плз, если такое есть
Записан

2^7-1 == 127, задумайтесь...
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Июнь 06, 2010, 18:10 »

>>не вижу возможности установить делегата для отдельной ячейки
нет такой возможности.
Только с делегатом мудрить, чтобы он поддерживал разные варианты. А варианты засовывать в модель в UserRole.

Либо сделать наследника представления и реализовать соответствующий метод.

Сложно сказать, что будет менее геморройным.
Записан

Юра.
Kolobok
Гость
« Ответ #2 : Июнь 06, 2010, 18:43 »

QAbstractItemModel::flags ( const QModelIndex & index )
Записан
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #3 : Июнь 06, 2010, 19:14 »

QAbstractItemModel::flags ( const QModelIndex & index )

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

например, в колонке отображаются данные разных типов: целое, логическое, вещественное - для целых удобно спином или редактированием менять значение, для вещественных надо иметь возможность редактирования, или выбора из предопределенных символьных эквивалентов (PI, E, PI/2 и тд), для логических только выбор из списка ИСТИНА или ЛОЖЬ

ну или какой-нибудь более сложный случай

странно, что нет вызова setItemDelegateForCell ( int row, int column, QAbstractItemDelegate * )

придется наверно в моем случае "с делегатом мудрить", так похоже проще всего получится
Записан

2^7-1 == 127, задумайтесь...
Kolobok
Гость
« Ответ #4 : Июнь 06, 2010, 19:52 »

Использование setItemDelegate... не важно какого, подразумевает, что делегата в любом случае писать придется. Улыбающийся
Записан
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #5 : Июнь 06, 2010, 20:59 »

разумеется, но фишка не в этом - сейчас придется реализовать класс, который поддерживает все возможные на сейчас варианты, а если новые добавятся, то придется этот класс переписывать

если бы можно было разные классы в столбец делегировать, то переписывать ничего не надо, можно было бы готовые добавить в библиотеку, и потом только добавлять новые
« Последнее редактирование: Июнь 06, 2010, 21:10 от Гурман » Записан

2^7-1 == 127, задумайтесь...
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.041 секунд. Запросов: 19.