我需要我的QT应用程序来创建表并将此表复制到剪贴板,以便它可以作为表粘贴到libreoffice Writer或MS Word以后。通过QT(或:将QTextDocument写入剪贴板)将(rtf)表复制到剪贴板中
我的第一个方法是为表创建的HTML代码,并将其与
QClipboard *clipboard = QApplication::clipboard();
QMimeData *mimeData = new QMimeData();
mimeData->setData("text/html", html.toUtf8());
clipboard->setMimeData(mimeData, QClipboard::Clipboard);
这种做法没有奏效插入到剪贴板。粘贴时,将表格单元格相互追加并插入而不进行格式化。
我的第二种方法使用RTF:
QTextDocument rtfDocument;
rtfDocument.setHtml(html);
但是我发现没有办法这个另外,QTextDocument复制到剪贴板。有没有? 如果我能得到的RTF码出另外,QTextDocument的,我可以用一个办法像
QClipboard *clipboard = QApplication::clipboard();
QMimeData *mimeData = new QMimeData();
mimeData->setData("text/rtf", rtfDocument.getCode());
clipboard->setMimeData(mimeData, QClipboard::Clipboard);
但我也没有找到一个函数返回的RTF代码。
编辑:
有了上次的代码框上方我有一个工作方式,以RTF代码复制到剪贴板。因此,任何可以创建代表表格的RTF代码的解决方案都可以解决我的问题。
据对[这太问题]的答案(http://stackoverflow.com/questions/294343/read-and -write-rtf-files-with-c-qt),你可以用[librtf](http://sourceforge.net/projects/librtf/)进行RTF处理。我会检查一下。 – Attila 2012-03-26 15:44:13
不幸的是,librtf只允许解析,不能创建rtf文件。 – Heinzi 2012-03-29 12:22:16