我有一个预先存在的函数,可以生成富文本/ html报告。我的应用在工具提示中显示此报告。我已经加入到这一报告复制到使用类似下面的代码将剪贴板中的能力:使用QClipboard时,如何复制富文本并将其降级为文本编辑器的纯文本?
reportRichText = generateReport()
clipboard = QApplication.clipboard()
reportRichTextMime = QMimeData()
reportRichTextMime.setHtml(reportRichText)
clipboard.setMimeData(reportRichTextMime)
这让我复制的报告,并将其粘贴到任何接受富文本。例如,我可以将报告粘贴到MS Word中。但问题是,我无法将其粘贴到纯文本编辑器中。我只是有一个灰色的“粘贴”选择,好像没有什么可粘贴的。另一个有趣的消息,如果我用MS Word做“粘贴特殊”,我只能选择粘贴为“HTML格式”,没有列出纯文本选项。
当然,如果我只是简单地使用QClipboard复制为纯文本,我可以复制粘贴到任何我想要的地方。不过,我正在复制/粘贴所有标记。这显然是我不想要的。我要么想要富文本,要么没有标记纯文本。
我期望的行为是您从Web浏览器复制/粘贴文本时获得的行为。对于接受富文本的应用程序,粘贴富文本(此外,MS Word将允许您以纯文本或富文本的形式粘贴)。对于纯文本编辑器,将非呈现的纯文本粘贴到纯文本编辑器中。
如何使用QClipboard获取也可作为纯文本粘贴的富文本?
好知道。从阅读文档看,它*听起来像'setText()'将剪辑的类型设置为纯文本,将'setHtml()'设置为HTML,即不能同时使用这两种文本。 – kindall 2012-04-08 02:39:08