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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Чат с анимированными смайлами  (Прочитано 5289 раз)
andrew.k
Гость
« : Декабрь 13, 2011, 21:41 »

Как удобнее реализовать? Вопрос собственно в анимированных смайлах.
Сейчас чат отображается через QTextDocument.

Кто-нибудь делал?
Записан
andrew.k
Гость
« Ответ #1 : Декабрь 13, 2011, 21:44 »

Нашел такое решение.

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

Будут жуткие тормоза.
Записан
Fat-Zer
Гость
« Ответ #2 : Декабрь 13, 2011, 22:02 »

а если теже яйца, на в профиль: таймер + покадрово менять картинку?
Записан
andrew.k
Гость
« Ответ #3 : Декабрь 13, 2011, 22:15 »

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

Сейчас устроено так.
Список сообщений чата хранит модель.
Данные модели отображает QListView + собственный делегат.
Делегат рисует айтемы с помощью QTextDocument.

Поэтому вклинить QMovie видимо не получится, надо менять концепцию.
« Последнее редактирование: Декабрь 13, 2011, 22:27 от andrew.k » Записан
andrew.k
Гость
« Ответ #5 : Декабрь 13, 2011, 22:31 »

кто-нибудь может выкачать исходники отсюда
и выложить в архиве. А то я джитом никогда не пользовался. и нет его у меня.
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #6 : Декабрь 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
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
andrew.k
Гость
« Ответ #7 : Декабрь 13, 2011, 23:41 »

Спасибо!

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

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

Великолепная работа! Чат со встроенным текстовым процессором. С ума сойти.
« Последнее редактирование: Декабрь 13, 2011, 23:46 от andrew.k » Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #8 : Декабрь 14, 2011, 00:46 »

Такого тестирования не проводил, т.к. забросил проект уже давно.
« Последнее редактирование: Декабрь 14, 2011, 00:47 от kibsoft » Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
IMPOMEZIA
Гость
« Ответ #9 : Декабрь 14, 2011, 01:14 »

QtWebKit работает быстрее, чем велосипеды на QTextBrowser, но реализацию по ссылкам выше не проверял.
В тоже время отрисовка QtWebKit работает медленнее, чем у других браузеров на основе WebKit (Chrome, Safari) и других на своих движках, может быть в QtWebKit 2.2, который будет в Qt 4.8, эти проблемы исправили, но тоже не проверял.
В общем WebKit сносное решение + бесплатные плюшки в виде полноценного JavaScript и CSS.
Записан
andrew.k
Гость
« Ответ #10 : Декабрь 21, 2011, 02:06 »

Решил пока не ломать текущую реализацию, так как нужно срочно доделывать.

Кто-нибудь делал делегата (QStyledItemDelegate) рисующего анимацию? Возможно ли это?
Какие будут идеи?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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