From 53e351a1adfcdd52a3af8e0accda15b8cc1e6dea Mon Sep 17 00:00:00 2001 From: Sze Howe Koh Date: Sun, 4 Jun 2023 23:01:04 +0800 Subject: [PATCH] Doc: Clarify how to use QPainter with QTextEdit The documentation suggests that it is possible to reimplement QTextEdit::paintEvent(), but doing so might produce cryptic runtime warnings: QWidget::paintEngine: Should no longer be called QPainter::begin: Paint device returned engine == 0, type: 1 The correct way to reimplement this function is noted under QAbstractScrollArea::paintEvent(). This patch updates the note and copies it to QTextEdit for clarity. Change-Id: Ib7d8dadeb2358475bcdb0b2e624857700f9a004e Reviewed-by: Safiyyah Moosa Reviewed-by: Andreas Eliasson Reviewed-by: Volker Hilsheimer (cherry picked from commit 5a2474b2dd0472948c53b16c4bf566db489dcfb9) Reviewed-by: Qt Cherry-pick Bot --- src/widgets/widgets/qabstractscrollarea.cpp | 2 +- src/widgets/widgets/qtextedit.cpp | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/widgets/widgets/qabstractscrollarea.cpp b/src/widgets/widgets/qabstractscrollarea.cpp index 2739994099e..f6f8e8b7952 100644 --- a/src/widgets/widgets/qabstractscrollarea.cpp +++ b/src/widgets/widgets/qabstractscrollarea.cpp @@ -1100,7 +1100,7 @@ void QAbstractScrollArea::resizeEvent(QResizeEvent *) This event handler can be reimplemented in a subclass to receive paint events (passed in \a event), for the viewport() widget. - \note If you open a painter, make sure to open it on the viewport(). + \note If you create a QPainter, it must operate on the viewport(). \sa QWidget::paintEvent() */ diff --git a/src/widgets/widgets/qtextedit.cpp b/src/widgets/widgets/qtextedit.cpp index 07bf840b560..d403ba73d10 100644 --- a/src/widgets/widgets/qtextedit.cpp +++ b/src/widgets/widgets/qtextedit.cpp @@ -1599,6 +1599,8 @@ void QTextEditPrivate::paint(QPainter *p, QPaintEvent *e) This event handler can be reimplemented in a subclass to receive paint events passed in \a event. It is usually unnecessary to reimplement this function in a subclass of QTextEdit. +\note If you create a QPainter, it must operate on the \l{QAbstractScrollArea::}{viewport()}. + \warning The underlying text document must not be modified from within a reimplementation of this function. */