我需要一个用于 Qt 的富文本编辑器。我一直在考虑使用 QTextEdit,因为它是富文本编辑,但我需要该小部件中不存在的两件事:
用户应该能够更改文本颜色、文本字体、下划线、粗体、斜体文本,所以我需要一个带有这些控件的文本编辑器工具栏(我需要自己编码吗?)
用户应该能够通过搜索图像来拖放或添加。现在,如果我尝试将图像复制并粘贴到我的 QTextEdit 上,我只会看到这个
我应该如何为我的每一项需求做些什么?
我需要一个用于 Qt 的富文本编辑器。我一直在考虑使用 QTextEdit,因为它是富文本编辑,但我需要该小部件中不存在的两件事:
用户应该能够更改文本颜色、文本字体、下划线、粗体、斜体文本,所以我需要一个带有这些控件的文本编辑器工具栏(我需要自己编码吗?)
用户应该能够通过搜索图像来拖放或添加。现在,如果我尝试将图像复制并粘贴到我的 QTextEdit 上,我只会看到这个
我应该如何为我的每一项需求做些什么?
1)看看这个官方例子,它应该给你一个能够更改文本的富文本编辑器,带有一个工具栏:
http://doc.qt.io/qt-5/qtwidgets-richtext-textedit-textedit-cpp.html
要拖放图像,恐怕您必须将文本编辑(QTextEdit 或 QTextBrowser)子类化并实现这两种方法:
void QTextEdit::dropImage(QImage const& p_image, QString const& p_format)
void QTextEdit::insertFromMimeData(const QMimeData* p_source)
2) 这是一个 GitHub 项目,它实现了您需要的一切,甚至更多:
https://github.com/Anchakor/MRichTextEditor
最后,如果您想了解富文本编辑器的工作原理,请参阅以下文档:
您可以使用从 Deko CRM 中提取的此编辑器:http: //www.hobrasoft.cz/en/blog/bravenec/qt-rich-text-editor
另一个想法可能是使用 WebKit 来制作这个小部件。见:https ://www.qt.io/blog/2009/03/12/wysiwyg-html-editor
请注意,那里链接的 git 存储库已移至此 URL:https ://code.qt.io/cgit/%7Bnon-gerrit%7D/qt-labs/graphics-dojo.git/tree/?id=8000ca3b229344ed2ba2ae81ed5ebaee86e9d63a
wwWidgets 有 RichTextEditor -> http://www.wysota.eu.org/wwwidgets/doc/html/qwwrichtextedit.html