c – 如何在QTableView的默认视图中显示超文本?

c – 如何在QTableView的默认视图中显示超文本?,第1张

概述我有一个网格,它继承了我的自定义模型集的QTableView视图.我还创建了用于编辑表格单元格中的项目的委托.他们都工作得很好(至少按照我的要求). 但我的问题是,当用户在单元格内部单击时,如果该项目的委托是让我们说QTextEdit(可以处理richtext),并且用户在texteditbox中粘贴一些文本(从带有文本的样式信息的MSWORD复制).此时它只显示正确的文本(表示粗体,斜体,字体大 我有一个网格,它继承了我的自定义模型集的QtableVIEw视图.我还创建了用于编辑表格单元格中的项目的委托.他们都工作得很好(至少按照我的要求).

但我的问题是,当用户在单元格内部单击时,如果该项目的委托是让我们说QTextEdit(可以处理richtext),并且用户在texteditBox中粘贴一些文本(从带有文本的样式信息的MSWORD复制).此时它只显示正确的文本(表示粗体,斜体,字体大小等),但只要委托在那里,但在将数据设置为模型并更新视图后,默认视图不会显示样式信息.它显示了纯HTML文本(如果我在调用委托的插槽dataChanged并从委托中获取HTML时设置模型数据).

我希望tablevIEw的默认视图处理HTML并根据其样式显示文本.

任何人都知道如何处理?提前致谢!
我正在使用QT版本4.1.4(我知道它的旧版本,但它的项目需求)

解决方法 默认情况下,显示的编辑器与该特定列的类型相关联(例如int,double,QDateTime).该编辑器由分配给视图的代理控制.特别是,看看它的 createEditor()和 setEditorData()功能.

您的模型可能正在使用QString类型并将该字符串传递给QTextEdit,QTextEdit会自动检查它以查看它是否包含HTML文本,并且由于它确实存在,它会将其显示为HTML.但是,标准代表不检查文本.

如果要在未处于编辑模式时更改视图,则需要能够显示富文本的委托. Here’s another stack overflow answer that gives details on the delegate.

总结

以上是内存溢出为你收集整理的c – 如何在QTableView的默认视图中显示超文本?全部内容,希望文章能够帮你解决c – 如何在QTableView的默认视图中显示超文本?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1229421.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存