2013-08-07 5 views
2

Я использую приложение Qt для рабочего стола, которое использует библиотеку XMPP для общения в чате. Я пытаюсь найти лучший подход с точки зрения производительности, легко модифицировать, добавлять настраиваемые материалы (например, показать thumbnain, если кто-то отправит мне изображение) ... Я хотел бы знать, какой подход, по вашему мнению, является best: - Каждый элемент в виде макета или виджета и добавьте их по одному (это кажется медленным) - Элементы ListWidget, перегружающие событие рисования (проблема: не знаю высоты элемента перед рисованием) - Используйте богатый текстовый виджет и создать чат как HTML-страницу (еще не пробовал) - ??Лучший виджет для чата в Qt

С наилучшими пожеланиями,

ответ

3

QListView бы хорошо для простого IRC чата. Если вы планируете внедрить некоторый расширенный стиль текста (разные шрифты и т. Д.) Или изображения (как вы сказали), WebView - это путь. Кроме того, гораздо проще, чем QListView.

Там даже пример Qt Google Chat проект, который использует QtWebKit: http://harmattan-dev.nokia.com/docs/library/html/qt4/webkit-googlechat.html

+0

Привет, спасибо за вашу помощь. Мне нужен классный виджет, так как я хотел бы добавить некоторые вещи, например, WhatsApp (изображения, звуки, групповой чат ...) –

+0

@ DídacPrere: групповой чат - это другое слой, но звуки должны быть довольно легкими с веб-просмотром. У вас есть аудио и видео HTML5. – user1234567

+1

Да, я думаю, что буду использовать QWebView, спасибо за ваш комментарий !! –

0

Я бы пойти на QListView с моделью прилагается и пользовательских делегатов и т.д ..

+0

Спасибо за ответ. Дело в том, что я раньше не знал длины текста, поэтому, возможно, мне пришлось бы растянуть высоту элемента, и я не смогу этого сделать, так как я рисую все в методе paint(). –

+0

Я могу использовать QFontMetrics для вычисления высоты текста, но для вычисления метрик всех элементов требуется слишком много времени ... :-( –

+1

Одна вещь, которую следует учитывать в этом решении, - это возможность выбора текста из нескольких списков items? – mhstnsc

Смежные вопросы