Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Денис от Февраль 05, 2010, 01:38



Название: Вопрос по QSqlTableModel и QTableView
Отправлено: Денис от Февраль 05, 2010, 01:38
Доброго времени суток!

Помогите пожалуйста новичку! У меня такой вопрос: В таблице в БД храню значения географических координат типа double, а на QTableView нужно отображать и редактировать значения этих координат в таком формате 090º00.00 N, т.е. тип QString.
Как можно на организовать преобразование типов, чтобы на QTableView отобразить эти координаты в QString, а в базу изменения записывать в double?

Для редактирования использую делегата (QLineEdit). При редактировании ячейки пересчитываю значение и формирую строку, которую помещаю на QLineEdit.


Название: Re: Вопрос по QSqlTableModel и QTableView
Отправлено: lit-uriy от Февраль 05, 2010, 04:37
>>Для редактирования использую делегата (QLineEdit).
своего надо написать унаследовавшись от QStandardItemDelegat


Название: Re: Вопрос по QSqlTableModel и QTableView
Отправлено: Денис от Февраль 05, 2010, 19:43
Своего делегата написал, с редактированием проблем нет, не соображу как установить маску, чтобы координаты после селекции отображались в формате 090º00.00 N ?


Название: Re: Вопрос по QSqlTableModel и QTableView
Отправлено: cya-st от Февраль 05, 2010, 20:44
Переопредели класс модели, и в виртуальной функции data опиши как ты будеш отображать число (сделай функцию преобразования в координаты).


Название: Re: Вопрос по QSqlTableModel и QTableView
Отправлено: crossly от Февраль 07, 2010, 21:24
раз уж все равно есть делегат... то наверное логичнее было бы переопределить paint у делегата... и отрисовать так как тебе нужно...


Название: Re: Вопрос по QSqlTableModel и QTableView
Отправлено: Денис от Февраль 10, 2010, 17:53
переопределил paint и добился желаемого результата! большое спасибо за помощь!