Ich habe eine bereits existierende Funktion, die einen Rich Text/HTML-Bericht generiert. Meine App zeigt diesen Bericht in einem Tooltip an. Ich habe die Möglichkeit hinzugefügt, diesen Bericht in die Zwischenablage zu kopieren, so etwas wie der folgenden Code:Wie kann ich mit QClipboard Rich Text kopieren und für Texteditoren auf Nur-Text herunterstufen?
reportRichText = generateReport()
clipboard = QApplication.clipboard()
reportRichTextMime = QMimeData()
reportRichTextMime.setHtml(reportRichText)
clipboard.setMimeData(reportRichTextMime)
Dies ermöglicht es mir, den Bericht zu kopieren und in etwas einfügen, die Rich Text akzeptiert. Zum Beispiel kann ich den Bericht in MS Word einfügen. Das Problem kann ich jedoch nicht in einen Texteditor einfügen. Ich habe einfach eine ausgegraute "Paste" -Auswahl, als ob nichts hinzuzufügen wäre. Ein weiterer interessanter Leckerbissen, wenn ich "Paste Special" mit MS Word mache, habe ich nur die Möglichkeit, als "HTML-Format" einzufügen, es wird keine Klartext-Option aufgelistet.
Natürlich, wenn ich QClipboard einfach als Nur-Text zu kopieren, kann ich kopieren und einfügen, wo immer ich will. Allerdings kopiere ich alle Markups. Was ich offensichtlich nicht will. Ich möchte entweder Rich Text oder nicht markierten Text.
Das Verhalten, das ich erwarten würde, ist das Verhalten, das Sie erhalten, wenn Sie Text von einem Webbrowser kopieren/einfügen. Bei Anwendungen, die Rich Text akzeptieren, wird Rich Text eingefügt (außerdem können Sie in MS Word als Text oder Rich Text einfügen). Bei Klartext-Editoren wird der nicht gerenderte Klartext in den Klartext-Editor eingefügt.
Wie kann ich mit QClipboard Rich-Text verwenden, der auch als reiner Text eingefügt werden kann?
Gut zu wissen zu tun. Aus dem Lesen der Dokumente * klang * wie 'setText()' den Typ des Clips auf reinen Text und 'setHtml()' setze ihn auf HTML, d. H., Dass du nicht beide verwenden kannst. – kindall