【问题标题】:Best widget for a chat session in QtQt 中聊天会话的最佳小部件
【发布时间】:2013-08-07 10:18:26
【问题描述】:

我正在实现一个使用 XMPP 库进行聊天的桌面 Qt 应用程序。我正在尝试找到性能方面的最佳方法,易于修改,添加自定义内容(例如,如果有人向我发送图像,则显示缩略图)...... 我想知道您认为哪种方法最好: - 每个元素作为布局或小部件,并逐个添加(似乎很慢) - ListWidget 项目重载绘画事件(问题:绘画前不知道项目高度) - 使用富文本小部件并将聊天构建为 HTML 页面(尚未尝试过) - ??

最好的问候,

【问题讨论】:

    标签: qt xmpp chat


    【解决方案1】:

    QListView 对简单的 IRC 聊天很有用。如果您打算实现一些高级文本样式(不同的字体等)或图像(如您所说),WebView 是要走的路。此外,比 QListView 更简单的方法。

    甚至还有一个使用 QtWebKit 的示例 Qt Google Chat 项目:http://harmattan-dev.nokia.com/docs/library/html/qt4/webkit-googlechat.html

    【讨论】:

    • 用户您好,感谢您的帮助。我需要一个很酷的小部件,因为我想放一些东西,例如 WhatsApp(图像、声音、群聊......)
    • @DídacPérez:群聊是一个不同的层,但使用 webview 应该很容易听。您已经内置了 HTML5 音频和视频。
    • @DídacPérez 你在 QWebView 方面取得了进展吗?我想走同样的路,我需要一些智慧:)。
    • 没有成功,几个月前我一直没有在做这件事。对不起:)
    【解决方案2】:

    我会选择带有附加模型和自定义委托等的 QListView。

    【讨论】:

    • 感谢您的回答。关键是我以前不知道文本的长度,所以也许我必须拉伸项目的高度,而我无法做到这一点,因为我在 paint() 方法中绘制了所有内容。跨度>
    • 我可以使用 QFontMetrics 来计算文本的高度,但是计算所有项目的度量需要太多时间... :-(
    • 在此解决方案中要考虑的一件事是是否可以跨多个列表项选择文本?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    相关资源
    最近更新 更多