crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Как увеличить точность дефолтному делегату QSinBox в QTableView?
Rocky
  опции профиля:
сообщение 9.2.2011, 19:53
Сообщение #1


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Всем привет!

Возникла проблема... Есть модель, унаследованная от QAbstractTableModel. Заполняю ее вручную из БД (т.е. считываю данные и вызываю setData). Отображаю их в QTableView. Все работает, но есть одно но. Практически все данные - числа типа double. При попытке редактирования ячейки в таблице появляется QSpinBox (он сам, я его не создавал)... Штука в том, что этот QSpinBox не дает вводить более 2-х знаков после запятой... Как к нему подобраться чтобы увеличить точность? Полям, при формировании таблицы в БД, давал тип varchar(20)...

Спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 9.2.2011, 20:32
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


странно, что для varchar появляется QSpinBox. По идее должен появляться QLineEdit
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 9.2.2011, 20:36
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(Rocky @ 9.2.2011, 19:53) *
Как к нему подобраться чтобы увеличить точность?

Написать свой делегат?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 9.2.2011, 20:44
Сообщение #4


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Мдя.... а по-другому больше никак? =(((
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 9.2.2011, 20:53
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(Rocky @ 9.2.2011, 20:44) *
Мдя.... а по-другому больше никак? =(((

Это несколько десятков строк кода и можно получишь полностью настраиваемый под себя функционал. 8)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MoPDoBoPoT
  опции профиля:
сообщение 9.2.2011, 22:55
Сообщение #6


Участник
**

Группа: Участник
Сообщений: 172
Регистрация: 7.5.2009
Из: Москва
Пользователь №: 738

Спасибо сказали: 44 раз(а)




Репутация:   9  


Цитата(Litkevich Yuriy @ 9.2.2011, 20:32) *
странно, что для varchar появляется QSpinBox. По идее должен появляться QLineEdit

По-моему это связано с тем, что в БД числа могут храниться с более высокой точностью, поэтому они оттуда приходят строкой, из-за чего делегат сначала пытается привести строку к double...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 10.2.2011, 11:07
Сообщение #7


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Все, разобрался. Сделал QLineEdit делегатом.. Убрал еще одно темное место в Qt =) Оказалось не так сложно )

Всем спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.12.2024, 21:06