2013-12-09 66 views
1

我一直在尝试使用textBrowser以在我的应用程序中显示聊天消息。我已经设置了启用HTML的textBrowser。那么我追加每一个消息到textBrowser像这样:Qt:显示聊天消息的最佳控制

ui->textBrowser->append(QString().sprintf("<div style=\"border-bottom:1px solid #eeeeee; background-color:#ffffff;display:block;\"><font color=\"red\"> %s</font></div>",msg.toStdString().c_str())); 

然而,我在我可以应用到每个附加元素是什么CSS很有限。例如; - 边境不起作用 - 显示块不起作用 - 等

现在我相当肯定,textBrowser只是没有我需要的,我的目标在很大程度上创建一个聊天消息的力量像Skype一样。

什么是用于此目的的最佳控制措施?

一些想法,我到目前为止有: - 使用scrollArea和追加widgets他们 内 - (如果可能不知道的风格是我喜欢的方式)使用listView

Key elements i want to include in each chat message are: 
- Time 
- Avatar picture 
- Name 
- Text message 

任何想法这里最好的方法是什么?

编辑

不幸的是,因为我仍然是新来的,我不能附上照片呢。

回答

2

我想你可以简单地使用WebKit(WebView)组件。这将允许你做任何你需要的和更多的事情。样式和布局像普通的HTML/CSS页面一样完成,然后您可以通过JavaScript将它集成到应用程序后端。

+0

是的,'QWebView'功能强大且易于使用。但是a)并非所有的HTML代码都能像Chrome/Firefox /等一样工作。 b)它附加了额外的依赖项(QtWebkit库)c)在移动平台下仍然不能工作。但我认为OP不关心这个:) – eraxillan

+0

所以我会为每个消息添加一个新的div到'WebView'中? – user3082584

+0

这是插入的最佳方法吗? http://stackoverflow.com/questions/17865040/qt-how-to-insert-html-into-an-editable-qwebview-at-the-cursor-position – user3082584