Название: Необычный QTableView Отправлено: giker от Январь 03, 2011, 11:57 С Новым годом коллеги! Возникла следующая проблема. Сделан грид на основе QTableView. Первая колонка этого грида не редактируема, вторая колонка может радактироваться пользователем, третья представляет из себя комбобокс, причем третья и вторая колонка всегда должны находиться в режиме редактирования, что бы пользователь мог редактировать вторую колонку, и видел что в гриде есть комбобокс в третьей колонке, сразу, а не по щелчку мыши. Все это сделано спомощью вот такого кода
Код: void Dialog::setupDelegateAndGrid() Если пользоваьель вывбирает какой-то item в комбобоксе и для него назначено некое значение по умолчанию, то во второй колонке этой же строки должно появиться это дефолтовое значение, сделано это в такой функции Код: void Dialog::comboTextChanged(QString text) Но результат этой функции дает о себе знать только тогда когда произошло редактирование или был щелчок по какой то ячейке грида, если сразу выбрать значение в комбобоксе, любой строки грида, то во второй колонке дефолтовое значение не отобазиться для текущей строки. Подскажите пожалуйста как сделать так что бы у грида было нужное мне поведение. Спасибо. Название: Re: Необычный QTableView Отправлено: twp от Январь 04, 2011, 14:44 может поможет viewport()->update() для QTableView после внесения изменений в модель
Название: Re: Необычный QTableView Отправлено: crossly от Январь 05, 2011, 09:54 обновление произойдет после сабмита... который соответственно по умолчанию после OnFieldChange
Название: Re: Необычный QTableView Отправлено: giker от Январь 05, 2011, 20:08 Ковырялся пытаясь понять в чем дело. Выяснил вот что: если не вызывать
Код: tableView->openPersistentEditor(m_model->index(i, 1)); Название: Re: Необычный QTableView Отправлено: crossly от Январь 06, 2011, 14:57 потому что данные передаются в модель после закрытия эдитора... сделать делегат и отрисовать нужные вам контролы
Название: Re: Необычный QTableView Отправлено: giker от Январь 07, 2011, 09:08 Делегат уже сделан. Но непонятно почему такое поведение просходит только при редактировании первой строки, при редактированиие всех остальных все работает так как надо, до перевода фокуса на другой контрол виджета.
|