Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qplaintextedit.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QPLAINTEXTEDIT_H
5#define QPLAINTEXTEDIT_H
6
7#include <QtWidgets/qtwidgetsglobal.h>
8#include <QtWidgets/qtextedit.h>
9
10#include <QtWidgets/qabstractscrollarea.h>
11#include <QtGui/qtextdocument.h>
12#include <QtGui/qtextoption.h>
13#include <QtGui/qtextcursor.h>
14#include <QtGui/qtextformat.h>
15#include <QtGui/qabstracttextdocumentlayout.h>
16
18
20
21class QStyleSheet;
22class QTextDocument;
23class QMenu;
25class QMimeData;
28
29class Q_WIDGETS_EXPORT QPlainTextEdit : public QAbstractScrollArea
30{
32 Q_DECLARE_PRIVATE(QPlainTextEdit)
33 Q_PROPERTY(bool tabChangesFocus READ tabChangesFocus WRITE setTabChangesFocus)
34 Q_PROPERTY(QString documentTitle READ documentTitle WRITE setDocumentTitle)
35 Q_PROPERTY(bool undoRedoEnabled READ isUndoRedoEnabled WRITE setUndoRedoEnabled)
36 Q_PROPERTY(LineWrapMode lineWrapMode READ lineWrapMode WRITE setLineWrapMode)
37 QDOC_PROPERTY(QTextOption::WrapMode wordWrapMode READ wordWrapMode WRITE setWordWrapMode)
38 Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly)
39 Q_PROPERTY(QString plainText READ toPlainText WRITE setPlainText NOTIFY textChanged USER true)
40 Q_PROPERTY(bool overwriteMode READ overwriteMode WRITE setOverwriteMode)
41 Q_PROPERTY(qreal tabStopDistance READ tabStopDistance WRITE setTabStopDistance)
42 Q_PROPERTY(int cursorWidth READ cursorWidth WRITE setCursorWidth)
43 Q_PROPERTY(Qt::TextInteractionFlags textInteractionFlags READ textInteractionFlags
44 WRITE setTextInteractionFlags)
45 Q_PROPERTY(int blockCount READ blockCount)
46 Q_PROPERTY(int maximumBlockCount READ maximumBlockCount WRITE setMaximumBlockCount)
47 Q_PROPERTY(bool backgroundVisible READ backgroundVisible WRITE setBackgroundVisible)
48 Q_PROPERTY(bool centerOnScroll READ centerOnScroll WRITE setCenterOnScroll)
49 Q_PROPERTY(QString placeholderText READ placeholderText WRITE setPlaceholderText)
50public:
53 WidgetWidth
54 };
55 Q_ENUM(LineWrapMode)
56
57 explicit QPlainTextEdit(QWidget *parent = nullptr);
58 explicit QPlainTextEdit(const QString &text, QWidget *parent = nullptr);
59 virtual ~QPlainTextEdit();
60
61 void setDocument(QTextDocument *document);
62 QTextDocument *document() const;
63
64 void setPlaceholderText(const QString &placeholderText);
65 QString placeholderText() const;
66
67 void setTextCursor(const QTextCursor &cursor);
68 QTextCursor textCursor() const;
69
70 bool isReadOnly() const;
71 void setReadOnly(bool ro);
72
73 void setTextInteractionFlags(Qt::TextInteractionFlags flags);
74 Qt::TextInteractionFlags textInteractionFlags() const;
75
76 void mergeCurrentCharFormat(const QTextCharFormat &modifier);
77 void setCurrentCharFormat(const QTextCharFormat &format);
78 QTextCharFormat currentCharFormat() const;
79
80 bool tabChangesFocus() const;
81 void setTabChangesFocus(bool b);
82
83 inline void setDocumentTitle(const QString &title)
84 { document()->setMetaInformation(QTextDocument::DocumentTitle, title); }
85 inline QString documentTitle() const
86 { return document()->metaInformation(QTextDocument::DocumentTitle); }
87
88 inline bool isUndoRedoEnabled() const
89 { return document()->isUndoRedoEnabled(); }
90 inline void setUndoRedoEnabled(bool enable)
91 { document()->setUndoRedoEnabled(enable); }
92
93 inline void setMaximumBlockCount(int maximum)
94 { document()->setMaximumBlockCount(maximum); }
95 inline int maximumBlockCount() const
96 { return document()->maximumBlockCount(); }
97
98
99 LineWrapMode lineWrapMode() const;
100 void setLineWrapMode(LineWrapMode mode);
101
102 QTextOption::WrapMode wordWrapMode() const;
103 void setWordWrapMode(QTextOption::WrapMode policy);
104
105 void setBackgroundVisible(bool visible);
106 bool backgroundVisible() const;
107
108 void setCenterOnScroll(bool enabled);
109 bool centerOnScroll() const;
110
111 bool find(const QString &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags());
112#if QT_CONFIG(regularexpression)
113 bool find(const QRegularExpression &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags());
114#endif
115
116 inline QString toPlainText() const
117 { return document()->toPlainText(); }
118
119 void ensureCursorVisible();
120
121 virtual QVariant loadResource(int type, const QUrl &name);
122#ifndef QT_NO_CONTEXTMENU
123 QMenu *createStandardContextMenu();
124 QMenu *createStandardContextMenu(const QPoint &position);
125#endif
126
127 QTextCursor cursorForPosition(const QPoint &pos) const;
128 QRect cursorRect(const QTextCursor &cursor) const;
129 QRect cursorRect() const;
130
131 QString anchorAt(const QPoint &pos) const;
132
133 bool overwriteMode() const;
134 void setOverwriteMode(bool overwrite);
135
136 qreal tabStopDistance() const;
137 void setTabStopDistance(qreal distance);
138
139 int cursorWidth() const;
140 void setCursorWidth(int width);
141
142 void setExtraSelections(const QList<QTextEdit::ExtraSelection> &selections);
143 QList<QTextEdit::ExtraSelection> extraSelections() const;
144
146
147 bool canPaste() const;
148
149 void print(QPagedPaintDevice *printer) const;
150
151 int blockCount() const;
152 QVariant inputMethodQuery(Qt::InputMethodQuery property) const override;
154
155public Q_SLOTS:
156
157 void setPlainText(const QString &text);
158
159#ifndef QT_NO_CLIPBOARD
160 void cut();
161 void copy();
162 void paste();
163#endif
164
165 void undo();
166 void redo();
167
168 void clear();
169 void selectAll();
170
171 void insertPlainText(const QString &text);
172
173 void appendPlainText(const QString &text);
174 void appendHtml(const QString &html);
175
176 void centerCursor();
177
178 void zoomIn(int range = 1);
179 void zoomOut(int range = 1);
180
183 void undoAvailable(bool b);
184 void redoAvailable(bool b);
185 void copyAvailable(bool b);
188
189 void updateRequest(const QRect &rect, int dy);
190 void blockCountChanged(int newBlockCount);
192
193protected:
194 virtual bool event(QEvent *e) override;
195 virtual void timerEvent(QTimerEvent *e) override;
196 virtual void keyPressEvent(QKeyEvent *e) override;
197 virtual void keyReleaseEvent(QKeyEvent *e) override;
198 virtual void resizeEvent(QResizeEvent *e) override;
199 virtual void paintEvent(QPaintEvent *e) override;
200 virtual void mousePressEvent(QMouseEvent *e) override;
201 virtual void mouseMoveEvent(QMouseEvent *e) override;
202 virtual void mouseReleaseEvent(QMouseEvent *e) override;
203 virtual void mouseDoubleClickEvent(QMouseEvent *e) override;
204 virtual bool focusNextPrevChild(bool next) override;
205#ifndef QT_NO_CONTEXTMENU
206 virtual void contextMenuEvent(QContextMenuEvent *e) override;
207#endif
208#if QT_CONFIG(draganddrop)
209 virtual void dragEnterEvent(QDragEnterEvent *e) override;
210 virtual void dragLeaveEvent(QDragLeaveEvent *e) override;
211 virtual void dragMoveEvent(QDragMoveEvent *e) override;
212 virtual void dropEvent(QDropEvent *e) override;
213#endif
214 virtual void focusInEvent(QFocusEvent *e) override;
215 virtual void focusOutEvent(QFocusEvent *e) override;
216 virtual void showEvent(QShowEvent *) override;
217 virtual void changeEvent(QEvent *e) override;
218#if QT_CONFIG(wheelevent)
219 virtual void wheelEvent(QWheelEvent *e) override;
220#endif
221
222 virtual QMimeData *createMimeDataFromSelection() const;
223 virtual bool canInsertFromMimeData(const QMimeData *source) const;
224 virtual void insertFromMimeData(const QMimeData *source);
225
226 virtual void inputMethodEvent(QInputMethodEvent *) override;
227
229
230 virtual void scrollContentsBy(int dx, int dy) override;
231 virtual void doSetTextCursor(const QTextCursor &cursor);
232
233 QTextBlock firstVisibleBlock() const;
234 QPointF contentOffset() const;
235 QRectF blockBoundingRect(const QTextBlock &block) const;
236 QRectF blockBoundingGeometry(const QTextBlock &block) const;
237 QAbstractTextDocumentLayout::PaintContext getPaintContext() const;
238
239 void zoomInF(float range);
240
241private:
242 Q_DISABLE_COPY(QPlainTextEdit)
243
245};
246
247
250{
252 Q_DECLARE_PRIVATE(QPlainTextDocumentLayout)
253 Q_PROPERTY(int cursorWidth READ cursorWidth WRITE setCursorWidth)
254
255public:
258
259 void draw(QPainter *, const PaintContext &) override;
260 int hitTest(const QPointF &, Qt::HitTestAccuracy ) const override;
261
262 int pageCount() const override;
263 QSizeF documentSize() const override;
264
265 QRectF frameBoundingRect(QTextFrame *) const override;
266 QRectF blockBoundingRect(const QTextBlock &block) const override;
267
268 void ensureBlockLayout(const QTextBlock &block) const;
269
270 void setCursorWidth(int width);
271 int cursorWidth() const;
272
273 void requestUpdate();
274
275protected:
276 void documentChanged(int from, int /*charsRemoved*/, int charsAdded) override;
277
278
279private:
280 void setTextWidth(qreal newWidth);
281 qreal textWidth() const;
282 void layoutBlock(const QTextBlock &block);
283 qreal blockWidth(const QTextBlock &block);
284
286
287 friend class QPlainTextEdit;
289};
290
292
293#endif // QPLAINTEXTEDIT_H
The QContextMenuEvent class contains parameters that describe a context menu event.
Definition qevent.h:594
\inmodule QtCore
Definition qcoreevent.h:45
The QFocusEvent class contains event parameters for widget focus events.
Definition qevent.h:470
The QInputMethodEvent class provides parameters for input method events.
Definition qevent.h:625
The QKeyEvent class describes a key event.
Definition qevent.h:424
The QMenu class provides a menu widget for use in menu bars, context menus, and other popup menus.
Definition qmenu.h:26
\inmodule QtCore
Definition qmimedata.h:16
\inmodule QtGui
Definition qevent.h:196
\inmodule QtGui
The QPaintEvent class contains event parameters for paint events.
Definition qevent.h:486
The QPainter class performs low-level painting on widgets and other paint devices.
Definition qpainter.h:46
The QPlainTextDocumentLayout class implements a plain text layout for QTextDocument.
The QPlainTextEdit class provides a widget that is used to edit and display plain text.
void setMaximumBlockCount(int maximum)
QString documentTitle() const
void setUndoRedoEnabled(bool enable)
void cursorPositionChanged()
This signal is emitted whenever the position of the cursor changed.
int maximumBlockCount() const
void copyAvailable(bool b)
This signal is emitted when text is selected or de-selected in the text edit.
void selectionChanged()
This signal is emitted whenever the selection changes.
void undoAvailable(bool b)
This signal is emitted whenever undo operations become available (available is true) or unavailable (...
void blockCountChanged(int newBlockCount)
This signal is emitted whenever the block count changes.
void redoAvailable(bool b)
This signal is emitted whenever redo operations become available (available is true) or unavailable (...
LineWrapMode
\value NoWrap \value WidgetWidth
QString toPlainText() const
Returns the text of the text edit as plain text.
void setDocumentTitle(const QString &title)
void textChanged()
This signal is emitted whenever the document's content changes; for example, when text is inserted or...
void modificationChanged(bool)
This signal is emitted whenever the content of the document changes in a way that affects the modific...
void updateRequest(const QRect &rect, int dy)
This signal is emitted when the text document needs an update of the specified rect.
bool isUndoRedoEnabled() const
\inmodule QtCore\reentrant
Definition qpoint.h:217
\inmodule QtCore\reentrant
Definition qpoint.h:25
\inmodule QtCore\reentrant
Definition qrect.h:484
\inmodule QtCore\reentrant
Definition qrect.h:30
\inmodule QtCore \reentrant
The QResizeEvent class contains event parameters for resize events.
Definition qevent.h:548
The QShowEvent class provides an event that is sent when a widget is shown.
Definition qevent.h:578
\inmodule QtCore
Definition qsize.h:208
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\reentrant
\reentrant \inmodule QtGui
Definition qtextcursor.h:30
MoveMode
\value MoveAnchor Moves the anchor to the same position as the cursor itself.
Definition qtextcursor.h:47
MoveOperation
\value NoMove Keep the cursor where it is
Definition qtextcursor.h:61
\reentrant \inmodule QtGui
\reentrant
Definition qtextobject.h:81
\reentrant
Definition qtextoption.h:18
WrapMode
This enum describes how text is wrapped in a document.
Definition qtextoption.h:60
\inmodule QtCore
Definition qcoreevent.h:366
\inmodule QtCore
Definition qurl.h:94
\inmodule QtCore
Definition qvariant.h:65
The QWidget class is the base class of all user interface objects.
Definition qwidget.h:99
b clear()
QString text
QCursor cursor
void textChanged(const QString &newText)
rect
[4]
short next
Definition keywords.cpp:445
Combined button and popup list for selecting options.
Definition qcompare.h:63
InputMethodQuery
static jboolean cut(JNIEnv *, jobject)
static jboolean copy(JNIEnv *, jobject)
static jboolean paste(JNIEnv *, jobject)
static jboolean selectAll(JNIEnv *, jobject)
static QString toPlainText(const QString &text)
static const QMetaObjectPrivate * priv(const uint *data)
GLboolean GLboolean GLboolean b
GLenum mode
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLsizei range
GLsizei GLsizei GLfloat distance
GLint GLsizei width
GLenum type
GLbitfield flags
GLboolean enable
GLuint name
GLint GLsizei GLsizei GLenum format
GLsizei GLsizei GLchar * source
struct _cl_event * event
GLenum query
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
#define QT_REQUIRE_CONFIG(feature)
#define Q_ENUM(x)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_INVOKABLE
#define Q_SLOTS
#define QDOC_PROPERTY(text)
#define Q_SIGNALS
double qreal
Definition qtypes.h:187
const char property[13]
Definition qwizard.cpp:101
QString title
[35]
myFilter draw(painter, QPoint(0, 0), originalPixmap)
stack undo()
edit textCursor().insertText(text)
[0]
QSizePolicy policy
const QByteArray plainText
QDBusArgument argument