Qt rich text editor - is there an already-made one?

Johnny Pauling picture Johnny Pauling · Jul 24, 2012 · Viewed 14.2k times · Source

I need a rich text editor for Qt. I've been thinking about using QTextEdit since it's a rich text edit, but I need two things that aren't present in that widget:

  • The user should be able to change the text color, the text font, underline, bold, italic the text, so I need something like a text editor toolbar with these controls (do I need to code them by myself?)

  • The user should be able to drag'n'drop or add by searching for it an image. Now if I try to copy-and-paste an image onto my QTextEdit I just see this

enter image description here

How should I do for each one of my needs?

Answer

vmichele picture vmichele · Nov 30, 2015

1) Have a look at this official example, it should give you a rich text editor that is able to change the text, with a toolbar:

http://doc.qt.io/qt-5/qtwidgets-richtext-textedit-textedit-cpp.html

To drag and drop images, I'm afraid you will have to subclass a text edit (either QTextEdit or QTextBrowser) and implement these two methods:

void QTextEdit::dropImage(QImage const& p_image, QString const& p_format)
void QTextEdit::insertFromMimeData(const QMimeData* p_source)

2) Here is a GitHub project that implements all you need and even more:

https://github.com/Anchakor/MRichTextEditor


Lastly, if you want to understand how rich text editors work, here is the documentation:

http://doc.qt.io/qt-5/richtext.html