crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> QTableView и вывод времени, Необходимо вывести только время, а в БД тип данных datetime
silver47
  опции профиля:
сообщение 17.11.2010, 8:52
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

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




Репутация:   6  


Доброго времени суток, не знаю в эту ветку или нет.
В общем проблема такая, нужно вывести в QTableView столбец содержащий только время или только дату, а в базе данных (MS SQL 2005) столбец имеет тип datetime, то есть там храниться и дата и время, в итоге получается такое:

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 17.11.2010, 9:12
Сообщение #2


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

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

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




Репутация:   44  


Отнаследоваться от используемой модели и корректировать в ней значение или использовать proxy model.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
panter_dsd
  опции профиля:
сообщение 17.11.2010, 10:09
Сообщение #3


Жаждущий знаний
***

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

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




Репутация:   3  


Или написать свой делегат.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
xls
  опции профиля:
сообщение 17.11.2010, 10:24
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 6.9.2010
Пользователь №: 2013

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




Репутация:   2  


Цитата
Отнаследоваться от используемой модели и корректировать в ней значение

а именно, переопределить QVariant <Ваша модель>::data( const QModelIndex & index , int role ) const
Цитата
Или написать свой делегат.

и написать делегат
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
panter_dsd
  опции профиля:
сообщение 17.11.2010, 10:27
Сообщение #5


Жаждущий знаний
***

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

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




Репутация:   3  


xls, можно и без делегата. Просто преобразовывать QDateTime в QDate и его уже в data возвращать. А можно не наследоваться от модели и в делегате уже преобразовывать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 17.11.2010, 10:33
Сообщение #6


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

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




Репутация:   6  


Мне изменять значение не нужно, нужно лишь отобразить в корректном виде.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
panter_dsd
  опции профиля:
сообщение 17.11.2010, 10:36
Сообщение #7


Жаждущий знаний
***

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

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




Репутация:   3  


Никто не предлагает тебе изменять значение. Кстати, если используешь QSqlQueryModel, то можно в запросе приводить к нужному, т.е. SELECT some_field::date (что-то типа того)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
crashsp
  опции профиля:
сообщение 17.11.2010, 11:01
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 56
Регистрация: 23.10.2010
Пользователь №: 2144

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




Репутация:   546  


Если реализована своя модель в функции data в case Qt::DisplayRole: следи в каких колонках следует убирать время и просто возврати значение в формате "dd.MM.yyyy" типо того :
return value.toDateTime().toString("dd.MM.yyyy");
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
panter_dsd
  опции профиля:
сообщение 17.11.2010, 11:14
Сообщение #9


Жаждущий знаний
***

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

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




Репутация:   3  


Зачем так извращаться? return value.toDate () или value.toDateTime ().date ()

Сообщение отредактировал panter_dsd - 17.11.2010, 11:15
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 17.11.2010, 11:43
Сообщение #10


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

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




Репутация:   6  


Цитата(panter_dsd @ 17.11.2010, 12:36) *
Никто не предлагает тебе изменять значение. Кстати, если используешь QSqlQueryModel, то можно в запросе приводить к нужному, т.е. SELECT some_field::date (что-то типа того)


SELECT CAST(some_field AS type_of_date)

Проблема в том, что нет типа TIME, есть только DATETIME :(

Спасибо. Буду пытаться реализовать свою модель, думал можно как нибудь по проще :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 28.4.2024, 20:43