crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
lojka
  опции профиля:
сообщение 19.1.2010, 20:25
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 24.1.2009
Пользователь №: 506

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




Репутация:   0  


Здраствуйте. Сразу перейду к делу.

Имею - запрос, вернувший много строк данных, хочу его отобразить, использую представление QTableView и модель QStandardItemModel.

Выбор этого типа модели объясняется тем, что эти самые строчки надо отображать "с бантиками", т.е. данные в ячейках надо раскрашивать в различный цвет, текст некоторых строк выделять жирным.

Итак, что выходит, пример:

Запрос возвращает, скажем, m записей

- выделяется память на модель (m, n),
- в цикле создаются m * n раз элементы QStandardItem и вставляются в модель (так как модель, до создания этих элементов как бы пустаая, нельзя подкрашивать (setForeground) строки и менять шрифт)
- в эти элементы вставляются данные из запроса
- там же в цикле m*n раз происходит перекрашиваие текста для элемента (setForeground)

итого, то, что я хочу, получается... но получается это ОООООООООЧЧЧЧЧЧЕЕЕЕЕЕЕНЬ медленно.


Модели QSqlQueryModel, QSqlTableModel - создают по 5-10к записей на экране за доли секунды, моя же модель будет столько же данных в себя вставлять несколько минут, но к сожалению в QSqlQueryModel, QSqlTableModel нелья цвета тексту в ячейках менять...

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

Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 19.1.2010, 20:31
Сообщение #2


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

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

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




Репутация:   44  


Цитата(lojka @ 19.1.2010, 20:25) *
Посоветуйте направление, в котором копать, что можно использовать, что бы отображать данные, с измененным цветом текста и шрифта, но при этом ускорить процесс записи их в модель отображения их на экране?

Направление модели + делегаты. ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 19.1.2010, 20:34
Сообщение #3


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

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

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




Репутация:   94  


Цитата(lojka @ 19.1.2010, 23:25) *
QSqlQueryModel, QSqlTableModel нелья цвета тексту в ячейках менять...
как ты к такому выводу приш(ёл|ла)?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MoPDoBoPoT
  опции профиля:
сообщение 19.1.2010, 20:36
Сообщение #4


Участник
**

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

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




Репутация:   9  


Цитата(lojka @ 19.1.2010, 20:25) *
в QSqlQueryModel, QSqlTableModel нелья цвета тексту в ячейках менять...

Глубокое заблуждение. Можно либо отнаследоваться и переопределить метод data(), либо воспользоваться делегатом.
В интернете много примеров, поищи. Если что-то не понятно - пиши, постараемся помочь.


UPD Долго я писал :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lojka
  опции профиля:
сообщение 19.1.2010, 21:01
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 24.1.2009
Пользователь №: 506

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 19.1.2010, 20:34) *
Цитата(lojka @ 19.1.2010, 23:25) *
QSqlQueryModel, QSqlTableModel нелья цвета тексту в ячейках менять...
как ты к такому выводу приш(ёл|ла)?


Пришел 8)

Да просто стандартных способов я не увидел, а то, что какими-то окольными путями (которые порой трудны и опасны для неискушенного данной библиотекой человека) можно все что угодно сделать, я догадывался, поэтому тут и задал вопрос, зная, что наверняка есть ответ.


Спасиб ребят, мысли ваши воспринял, советы приму к сведенью, даже начало что-то в голове вырисовываться, как доберусь до рабочего компа, попробую реализовать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 19.1.2010, 21:12
Сообщение #6


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

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

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




Репутация:   94  


Цитата(lojka @ 20.1.2010, 0:01) *
что какими-то окольными путями
окольные это какие?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lojka
  опции профиля:
сообщение 19.1.2010, 21:21
Сообщение #7


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 24.1.2009
Пользователь №: 506

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 19.1.2010, 21:12) *
Цитата(lojka @ 20.1.2010, 0:01) *
что какими-то окольными путями
окольные это какие?



Это те, которые далеки от простейшего использования Qt-шных классов (например написание унаследованных классов с переопределением методов, или использование делегатов). Просто я не очень хорошо еще знаю Qt, поэтому считаю эти пути окольными, а не прямыми, ровными, и самими собой разумеющимися :rolleyes:.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 19.1.2010, 22:32
Сообщение #8


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

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

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




Репутация:   94  


Цитата(lojka @ 20.1.2010, 0:21) *
например написание унаследованных классов с переопределением методов
а как же ты окошки делаешь? Ведь нужно создавать наследника QWidget (QDialog или QMainWindow).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lojka
  опции профиля:
сообщение 20.1.2010, 17:18
Сообщение #9


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 24.1.2009
Пользователь №: 506

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




Репутация:   0  


Спасиб за советы... реализовал, использовал свою модель, наследующую QSqlQueryModel, переопределением функции data().

Скорость (по сравнению с тем, что было у меня до этого, впечатляет). 8)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 20.1.2010, 17:36
Сообщение #10


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

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

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




Репутация:   94  


lojka, вот видишь, это совсем не больно :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 17.6.2025, 19:09