Russian Qt Forum

Программирование => Алгоритмы => Тема начата: andrew.k от Декабрь 04, 2011, 19:52



Название: [Решено] Фильтрация данных модели
Отправлено: andrew.k от Декабрь 04, 2011, 19:52
Есть модель (QAbstractListModel), которая хранит сообщения чата.
У сообщений есть тип, например, сообщение пользователя или системное сообщение.

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

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


Название: Re: Модель сообщений чата
Отправлено: Bepec от Декабрь 05, 2011, 07:02
Самый простой и подходящий способ - фильтрация в момент выдачи данных.

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

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



Название: Re: Модель сообщений чата
Отправлено: andrew.k от Декабрь 05, 2011, 08:20
Самый простой и подходящий способ - фильтрация в момент выдачи данных.

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

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


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

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

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

По теме: сделал через прокси-модель.


Название: Re: [Решено] Фильтрация данных модели
Отправлено: Bepec от Декабрь 05, 2011, 08:27
andrew не психуй :)

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

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

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

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

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

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




Название: Re: [Решено] Фильтрация данных модели
Отправлено: andrew.k от Декабрь 05, 2011, 08:35
по твоему то что ты там написал это описание "алгоритма"?

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

Ты вот реализуй чушь, которую ты предложил, а потом уже другим советуй.


Название: Re: [Решено] Фильтрация данных модели
Отправлено: Bepec от Декабрь 05, 2011, 08:38
Я не собираюсь с тобой на дуэли драться, ибо к нервным я имею отношение спокойное и покровительственное. В модели на выдачу данных работает метод Data.

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


Название: Re: [Решено] Фильтрация данных модели
Отправлено: andrew.k от Декабрь 05, 2011, 08:44
Я не собираюсь с тобой на дуэли драться, ибо к нервным я имею отношение спокойное и покровительственное. В модели на выдачу данных работает метод Data.

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

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

И так как у тебя это хорошо уложено в голове, ты можешь дать дельный совет. Какой?


Название: Re: [Решено] Фильтрация данных модели
Отправлено: Bepec от Декабрь 05, 2011, 08:47
Дельный совет - не нервничай  :P

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

Но не спорю, что готовые заготовки на манер Proxy-Model лучше :)

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


Название: Re: [Решено] Фильтрация данных модели
Отправлено: andrew.k от Декабрь 05, 2011, 08:48
Ответ : Фильтрация, способ я описал. Если ты этого не понимаешь, это печально.

Цитировать
Нужно чтобы модель в зависимости от режима показывала либо все сообщения, либо только системные, либо только пользовательские
Первое сообщение. Если ты не видишь тут фильтрацию, то это печально.


Название: Re: [Решено] Фильтрация данных модели
Отправлено: andrew.k от Декабрь 05, 2011, 08:49
Дельный совет - не нервничай  :P

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

Но не спорю, что готовые заготовки на манер Proxy-Model лучше :)

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

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

ЗЫ. А твои сообщения, я не по разу читаю, чтобы в них смысл уловить. Но я же его ищу!


Название: Re: [Решено] Фильтрация данных модели
Отправлено: Bepec от Декабрь 05, 2011, 08:53
К сожалению иметь дела с нервным и неадекватным человеком я не хочу :)

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

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

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


Название: Re: [Решено] Фильтрация данных модели
Отправлено: andrew.k от Декабрь 05, 2011, 08:55
К сожалению иметь дела с нервным и неадекватным человеком я не хочу :)

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

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

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

я не нервичаю ни разу, я хочу понять зачем ты пишешь непонятно что, не подтвержденное кодом или хоть чем-то.
и ты же не хочешь это опровергнуть.