Russian Qt Forum
Май 15, 2024, 04:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено] Фильтрация данных модели  (Прочитано 6883 раз)
andrew.k
Гость
« : Декабрь 04, 2011, 19:52 »

Есть модель (QAbstractListModel), которая хранит сообщения чата.
У сообщений есть тип, например, сообщение пользователя или системное сообщение.

В модели сообщения хранятся в QList.
Нужно чтобы модель в зависимости от режима показывала либо все сообщения, либо только системные, либо только пользовательские.

Как этого добиться нормальным способом, не перебирая весь список выбирая нужный тип сообщений?
« Последнее редактирование: Декабрь 05, 2011, 08:21 от andrew.k » Записан
Bepec
Гость
« Ответ #1 : Декабрь 05, 2011, 07:02 »

Самый простой и подходящий способ - фильтрация в момент выдачи данных.

Метод data в модели - ставишь проверку на тип сообщения, с флагом смены. И при нажатии на отбор, будут возвращаться только отобранные данные.

Как то так себе я представляю.

Записан
andrew.k
Гость
« Ответ #2 : Декабрь 05, 2011, 08:20 »

Самый простой и подходящий способ - фильтрация в момент выдачи данных.

Метод data в модели - ставишь проверку на тип сообщения, с флагом смены. И при нажатии на отбор, будут возвращаться только отобранные данные.

Как то так себе я представляю.


Ты писал хоть одну модель?
Что за чушь ты написал?

- Народ подскажите, как сделать фильтрацию данных в модели?
- (Верес). Самый простой способ это отфильтровать данные. Я так себе представляю.
- Спасибо, Кэп.

Мне никак не помогло твое сообщение.

По теме: сделал через прокси-модель.
Записан
Bepec
Гость
« Ответ #3 : Декабрь 05, 2011, 08:27 »

andrew не психуй Улыбающийся

Цитировать
Нужно чтобы модель в зависимости от режима показывала либо все сообщения, либо только системные, либо только пользовательские.
Как этого добиться нормальным способом, не перебирая весь список выбирая нужный тип сообщений?

Метод Data модели передает данные представлению. (это ТЫ не опровергнешь Улыбающийся)

Если фильтр в него поставить - то спокойно делается фильтрация всех данных в модели. Настройки устанавливаешь только ты и как тебе угодно. (И это ТЫ не опровергнешь)

Прокси модель - ты соответсвенно использовал готовую заготовку, делающую то же самое Улыбающийся (и с этим не поспоришь ТЫ :-D )

И вопрос напоследок - ты не спросил
Цитировать
Народ подскажите, как сделать фильтрацию данных в модели?
А ты спросил - как выдать разные типы сообщений.

Ответ : Фильтрация, способ я описал. Если ты этого не понимаешь, это печально.


« Последнее редактирование: Декабрь 05, 2011, 08:30 от Bepec » Записан
andrew.k
Гость
« Ответ #4 : Декабрь 05, 2011, 08:35 »

по твоему то что ты там написал это описание "алгоритма"?

в модели не один только метод data работает, тебе же это известно!
И я не зря упомянул, что используется QList.

Ты вот реализуй чушь, которую ты предложил, а потом уже другим советуй.
Записан
Bepec
Гость
« Ответ #5 : Декабрь 05, 2011, 08:38 »

Я не собираюсь с тобой на дуэли драться, ибо к нервным я имею отношение спокойное и покровительственное. В модели на выдачу данных работает метод Data.

Найдешь мне другой метод, ответственный за выдачу данных представлению?
Записан
andrew.k
Гость
« Ответ #6 : Декабрь 05, 2011, 08:44 »

Я не собираюсь с тобой на дуэли драться, ибо к нервным я имею отношение спокойное и покровительственное. В модели на выдачу данных работает метод Data.

Найдешь мне другой метод, ответственный за выдачу данных представлению?

Помимо метода data есть еще метод count про который ты помнишь, если писал свою модель.
А так же ты очень хорошо помнишь про индексы в модели, потому что ты написал не одну модель.

И так как у тебя это хорошо уложено в голове, ты можешь дать дельный совет. Какой?
Записан
Bepec
Гость
« Ответ #7 : Декабрь 05, 2011, 08:47 »

Дельный совет - не нервничай  Показает язык

Реализовать можно в течении 4-10 минут + 10 минут на отладку.

Но не спорю, что готовые заготовки на манер Proxy-Model лучше Улыбающийся

PS и напоследок, перед тем как кидаться с текущей слюной и соплями на собеседника - прочти его сообщение  полностью:
Цитировать
Как то так себе я представляю.
Улыбающийся
Записан
andrew.k
Гость
« Ответ #8 : Декабрь 05, 2011, 08:48 »

Ответ : Фильтрация, способ я описал. Если ты этого не понимаешь, это печально.

Цитировать
Нужно чтобы модель в зависимости от режима показывала либо все сообщения, либо только системные, либо только пользовательские
Первое сообщение. Если ты не видишь тут фильтрацию, то это печально.
Записан
andrew.k
Гость
« Ответ #9 : Декабрь 05, 2011, 08:49 »

Дельный совет - не нервничай  Показает язык

Реализовать можно в течении 4-10 минут + 10 минут на отладку.

Но не спорю, что готовые заготовки на манер Proxy-Model лучше Улыбающийся

PS и напоследок, перед тем как кидаться с текущей слюной и соплями на собеседника - прочти его сообщение  полностью:
Цитировать
Как то так себе я представляю.
Улыбающийся

Не потратишь 14 минут на меня? и сюда код не выложишь? ты же хочешь помочь?
Или ты только говорить можешь?
или хотя бы опиши, как ты это будешь делать в псевдокоде.

ЗЫ. А твои сообщения, я не по разу читаю, чтобы в них смысл уловить. Но я же его ищу!
« Последнее редактирование: Декабрь 05, 2011, 08:52 от andrew.k » Записан
Bepec
Гость
« Ответ #10 : Декабрь 05, 2011, 08:53 »

К сожалению иметь дела с нервным и неадекватным человеком я не хочу Улыбающийся

Увы, портить себе настроение ради попытки вылечить его... Бесполезная трата времени.

В общем скажу просто нет, ведь ты не желаешь моей помощи, а хочешь повода меня пооскорблять Улыбающийся

PS "Спокойствие, Малыш, только спокойствие" © Карлсон, который живет на крыше.
Записан
andrew.k
Гость
« Ответ #11 : Декабрь 05, 2011, 08:55 »

К сожалению иметь дела с нервным и неадекватным человеком я не хочу Улыбающийся

Увы, портить себе настроение ради попытки вылечить его... Бесполезная трата времени.

В общем скажу просто нет, ведь ты не желаешь моей помощи, а хочешь повода меня пооскорблять Улыбающийся

PS "Спокойствие, Малыш, только спокойствие" © Карлсон, который живет на крыше.
не смеши меня.

я не нервичаю ни разу, я хочу понять зачем ты пишешь непонятно что, не подтвержденное кодом или хоть чем-то.
и ты же не хочешь это опровергнуть.
« Последнее редактирование: Декабрь 05, 2011, 08:57 от andrew.k » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 20.