Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Модель/Представление _ Как прикрутить несколько моделей к одному представлению?

Автор: Fynjy 8.12.2017, 7:59

Привет всем!
Задача такая: Есть QTableWidget состоящий из трех колонок. По нажатию кнопки каждая строка которого заполняется какими то данными. И вот по мере наполнения таблицы, возникает задача ее редактирования. Редактирование основано по типу, что когда я нажимаю на интересующую меня ячейку, должен в ней появляться ComboBox со значениями которые присущи только для данной колонки. Т.е по сути три колонки и три набора данных. В голове крутится такой механизм, что хочется организовать три модели данных, одно представление в виде таблицы, один делегат...Но как выбрать набор данных соответсвующий данному столбцу интересующей ячейки пока представить не могу...
С технологией модель/представление - недавно познакомилс....

Заранее благодарен за советы...

Автор: Алексей1153 9.12.2017, 15:00

делегат и методы
QAbstractItemDelegate::createEditor
QAbstractItemDelegate::setEditorData
QAbstractItemDelegate::destroyEditor

Автор: Fynjy 11.12.2017, 7:37

Цитата(Алексей1153 @ 9.12.2017, 15:00) *
делегат и методы
QAbstractItemDelegate::createEditor
QAbstractItemDelegate::setEditorData
QAbstractItemDelegate::destroyEditor

Извините, но не много не понял))) Я знаю что вызывать надо я не знаю как определить с какой колонки вызываются эти функции, чтобы определить нужный набор данных?


Цитата(Fynjy @ 11.12.2017, 7:35) *
Цитата(Алексей1153 @ 9.12.2017, 15:00) *
делегат и методы
QAbstractItemDelegate::createEditor
QAbstractItemDelegate::setEditorData
QAbstractItemDelegate::destroyEditor

Я знаю, что вызывать надо я не знаю как определить с какой колонки вызываются эти функции,....

вернее как в функции setEditor отшарить колонку с которой щелкнул?

Автор: Алексей1153 11.12.2017, 8:41

Fynjy, как вариант - мембер делегата (или даже просто кутешное свойство), куда заносится номер колонки при установке этого делегата

да что ж я, вот тут всё есть

void QAbstractItemDelegate::destroyEditor(QWidget *editor, const QModelIndex &index) const

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)