Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: andrew.k от Декабрь 13, 2011, 21:41



Название: Чат с анимированными смайлами
Отправлено: andrew.k от Декабрь 13, 2011, 21:41
Как удобнее реализовать? Вопрос собственно в анимированных смайлах.
Сейчас чат отображается через QTextDocument.

Кто-нибудь делал?


Название: Re: Чат с анимированными смайлами
Отправлено: andrew.k от Декабрь 13, 2011, 21:44
Нашел такое (http://www.qtcentre.org/wiki/index.php?title=Animation_in_QTextEdit) решение.

Но, по-моему такое решение будет очень непроизводительно.
Например, будет сразу 10 чатов с кучей смайлов в них. Они все одновременно будут анимироваться через QMovie.

Будут жуткие тормоза.


Название: Re: Чат с анимированными смайлами
Отправлено: Fat-Zer от Декабрь 13, 2011, 22:02
а если теже яйца, на в профиль: таймер + покадрово менять картинку?


Название: Re: Чат с анимированными смайлами
Отправлено: andrew.k от Декабрь 13, 2011, 22:15
а если теже яйца, на в профиль: таймер + покадрово менять картинку?
Ну так те же яйца же!
Тут видимо загвозка в том, чтобы анимировать только видимые в данный момент смайлы.
Буду думать в этом направлении.


Название: Re: Чат с анимированными смайлами
Отправлено: andrew.k от Декабрь 13, 2011, 22:19
Сейчас устроено так.
Список сообщений чата хранит модель.
Данные модели отображает QListView + собственный делегат.
Делегат рисует айтемы с помощью QTextDocument.

Поэтому вклинить QMovie видимо не получится, надо менять концепцию.


Название: Re: Чат с анимированными смайлами
Отправлено: andrew.k от Декабрь 13, 2011, 22:31
кто-нибудь может выкачать исходники отсюда (http://git.forwardbias.in/?p=hacks/giflabel.git;a=summary)
и выложить в архиве. А то я джитом никогда не пользовался. и нет его у меня.


Название: Re: Чат с анимированными смайлами
Отправлено: kibsoft от Декабрь 13, 2011, 22:52
http://git.forwardbias.in/?p=hacks/giflabel.git;a=tree;h=ca54c60338f09be5fdbd6ae15a366799350991b0;hb=ca54c60338f09be5fdbd6ae15a366799350991b0

отсюда можешь взять, нажав на raw.
Я давно делал webkit-ом - http://www.youtube.com/watch?v=dYaIHI7zV_Y


Название: Re: Чат с анимированными смайлами
Отправлено: andrew.k от Декабрь 13, 2011, 23:41
http://git.forwardbias.in/?p=hacks/giflabel.git;a=tree;h=ca54c60338f09be5fdbd6ae15a366799350991b0;hb=ca54c60338f09be5fdbd6ae15a366799350991b0

отсюда можешь взять, нажав на raw.
Я давно делал webkit-ом - http://www.youtube.com/watch?v=dYaIHI7zV_Y
Спасибо!

Меня интересует вопрос производительности. Вебкит это все-таки наверное тяжелая артиллерия.
Не будет ли нагружать проц 10 открытых чатов, работающих весь день (накопивших кучу сообщений)?
Да хотябы 10 чатов за час работы со смайлами. В среднем 1 сообщение в секунду или больше.
Это допустим 5000 сообщений в одном чате в час.
Пока что очистки старых нет.

Производилось ли подобное тестирование?

Великолепная работа! Чат со встроенным текстовым процессором. С ума сойти.


Название: Re: Чат с анимированными смайлами
Отправлено: kibsoft от Декабрь 14, 2011, 00:46
Такого тестирования не проводил, т.к. забросил проект уже давно.


Название: Re: Чат с анимированными смайлами
Отправлено: IMPOMEZIA от Декабрь 14, 2011, 01:14
QtWebKit работает быстрее, чем велосипеды на QTextBrowser, но реализацию по ссылкам выше не проверял.
В тоже время отрисовка QtWebKit работает медленнее, чем у других браузеров на основе WebKit (Chrome, Safari) и других на своих движках, может быть в QtWebKit 2.2, который будет в Qt 4.8, эти проблемы исправили, но тоже не проверял.
В общем WebKit сносное решение + бесплатные плюшки в виде полноценного JavaScript и CSS.


Название: Re: Чат с анимированными смайлами
Отправлено: andrew.k от Декабрь 21, 2011, 02:06
Решил пока не ломать текущую реализацию, так как нужно срочно доделывать.

Кто-нибудь делал делегата (QStyledItemDelegate) рисующего анимацию? Возможно ли это?
Какие будут идеи?