1

我的 Qt 项目需要一个类似于 Skype 的聊天窗口。即,聊天历史窗口,而不是用户输入文本的地方。我想使用某种 HTML 视图以编程方式添加来自聊天方的聊天文本。

一些要求:

  1. 它必须很好地格式化,我可以应用对 CSS 的支持..
  2. 我必须有滚动控制——例如当新的聊天行进来时自动滚动到聊天结束,即使我当前由于某种原因向上滚动。
  3. 它必须允许完整的鼠标复制,就像Skype一样。

QWebView 会做滚刀吗?我没有看到滚动控制 API,也没有“附加”新的文本行。每次换行时,我是否必须使用“setHTML”重新创建和重新提交 HTML?

任何建议将被认真考虑。

4

1 回答 1

1

您可能需要考虑使用QTextEditQTextBrowser。这两个小部件都支持 HTML(尽管它可能有些限制)。这些小部件将允许您逐行附加 HTML。它们还继承自 QAbstractScrollArea,它为您提供访问它们的滚动条的权限。我不确定他们是否会支持 CSS,但他们确实支持Qt 的样式表,如果你不能让 CSS 工作,这可能对你有用。它们还提供开箱即用的复制、剪切、粘贴、撤消和重做(尽管您可能希望根据自己的情况自定义)。

于 2012-08-03T19:33:27.993 回答