Мне нужно, чтобы мое приложение QT создало таблицу и скопировало эту таблицу в буфер обмена, чтобы позже ее можно было вставить как таблицу в libreoffice Writer или MS Word.
Мой первый подход состоял в том, чтобы создать 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, представляющий таблицу, решило бы мою проблему.