![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
lojka |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 24.1.2009 Пользователь №: 506 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Здраствуйте. Сразу перейду к делу.
Имею - запрос, вернувший много строк данных, хочу его отобразить, использую представление QTableView и модель QStandardItemModel. Выбор этого типа модели объясняется тем, что эти самые строчки надо отображать "с бантиками", т.е. данные в ячейках надо раскрашивать в различный цвет, текст некоторых строк выделять жирным. Итак, что выходит, пример: Запрос возвращает, скажем, m записей - выделяется память на модель (m, n), - в цикле создаются m * n раз элементы QStandardItem и вставляются в модель (так как модель, до создания этих элементов как бы пустаая, нельзя подкрашивать (setForeground) строки и менять шрифт) - в эти элементы вставляются данные из запроса - там же в цикле m*n раз происходит перекрашиваие текста для элемента (setForeground) итого, то, что я хочу, получается... но получается это ОООООООООЧЧЧЧЧЧЕЕЕЕЕЕЕНЬ медленно. Модели QSqlQueryModel, QSqlTableModel - создают по 5-10к записей на экране за доли секунды, моя же модель будет столько же данных в себя вставлять несколько минут, но к сожалению в QSqlQueryModel, QSqlTableModel нелья цвета тексту в ячейках менять... Посоветуйте направление, в котором копать, что можно использовать, что бы отображать данные, с измененным цветом текста и шрифта, но при этом ускорить процесс записи их в модель отображения их на экране? Спасибо. |
|
|
BRE |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#3
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
MoPDoBoPoT |
![]()
Сообщение
#4
|
Участник ![]() ![]() Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: ![]() ![]() ![]() |
в QSqlQueryModel, QSqlTableModel нелья цвета тексту в ячейках менять... Глубокое заблуждение. Можно либо отнаследоваться и переопределить метод data(), либо воспользоваться делегатом. В интернете много примеров, поищи. Если что-то не понятно - пиши, постараемся помочь. UPD Долго я писал ![]() |
|
|
lojka |
![]()
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 24.1.2009 Пользователь №: 506 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
QSqlQueryModel, QSqlTableModel нелья цвета тексту в ячейках менять... как ты к такому выводу приш(ёл|ла)?Пришел ![]() Да просто стандартных способов я не увидел, а то, что какими-то окольными путями (которые порой трудны и опасны для неискушенного данной библиотекой человека) можно все что угодно сделать, я догадывался, поэтому тут и задал вопрос, зная, что наверняка есть ответ. Спасиб ребят, мысли ваши воспринял, советы приму к сведенью, даже начало что-то в голове вырисовываться, как доберусь до рабочего компа, попробую реализовать. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
lojka |
![]()
Сообщение
#7
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 24.1.2009 Пользователь №: 506 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Это те, которые далеки от простейшего использования Qt-шных классов (например написание унаследованных классов с переопределением методов, или использование делегатов). Просто я не очень хорошо еще знаю Qt, поэтому считаю эти пути окольными, а не прямыми, ровными, и самими собой разумеющимися ![]() |
|
|
Litkevich Yuriy |
![]()
Сообщение
#8
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
lojka |
![]()
Сообщение
#9
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 24.1.2009 Пользователь №: 506 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Спасиб за советы... реализовал, использовал свою модель, наследующую QSqlQueryModel, переопределением функции data().
Скорость (по сравнению с тем, что было у меня до этого, впечатляет). ![]() |
|
|
Litkevich Yuriy |
![]()
Сообщение
#10
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
lojka, вот видишь, это совсем не больно
![]() |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 17.6.2025, 19:09 |