Qt实战总结(一)QTextEdit

1.QTextEdit简介

  Header:#include < QTextEdit >
  qmake: QT += widgets
  Inherits: QAbstractScrollArea
  Inherited By: QTextBrowser

QTextEdit属性

acceptRichText : bool
  此属性保存文本编辑是否接受用户的富文本插入。当此属性设置为false text时,编辑将只接受用户的纯文本输入。例如,通过剪贴板或拖放。此属性的默认值为true。

autoFormatting : AutoFormatting
  此属性保存已启用的自动格式化功能集。该值可以是AutoFormattingFlag枚举中的值的任意组合。默认值为“自动无”。选择AutoAll可启用所有自动格式化。目前,提供的唯一自动格式化功能是AutoBulletList;Qt的未来版本可能提供更多功能。
访问功能:

QTextEdit::AutoFormatting  autoFormatting() const;
void  setAutoFormatting(QTextEdit::AutoFormatting features);

cursorWidth : int
  此属性以像素为单位指定光标的宽度。默认值为1。
访问功能:

int cursorWidth() const;
void setCursorWidth(int width);

document : QTextDocument*
  此属性保存文本编辑器的基础文档。(注意:编辑器不拥有文档的所有权,除非它是文档的父对象。所提供文档的父对象仍然是该对象的所有者。如果先前指定的文档是编辑器的子文档,则将删除该文档。)
访问功能:

QTextDocument * document() const;
void setDocument(QTextDocument *document);

documentTitle : QString
  此属性保存从文本解析的文档的标题。默认情况下,对于新创建的空文档,此属性包含空字符串。
访问功能:

QString documentTitle() const;
void setDocumentTitle(const QString &title);

html : QString
  此属性为文本编辑的文本提供HTML接口。toHtml()将文本编辑的文本返回为html。setHtml()更改文本编辑的文本。删除以前的任何文本,并清除撤消/重做历史记录。输入文本被解释为html格式的富文本。(注意:当创建包含HTML的QString并将其传递给setHtml()时,调用者有责任确保文本被正确解码。)默认情况下,对于新创建的空文档,此属性包含描述无正文文本的HTML 4.0文档的文本。
访问功能:

QString  toHtml() const;
void setHtml(const QString &text);

通知信号:

void textChanged();

lineWrapColumnOrWidth : int
  此属性保留文本将被换行的位置(以像素或列为单位,具体取决于换行模式)。如果包裹模式为FixedPixelWidth,则该值为文本编辑左边缘的像素数,文本应在该位置包裹。如果换行模式为FixedColumnWidth,则该值是文本编辑左边缘的列号(以字符列为单位),文本应在该列中换行。默认情况下,此属性包含值0。
访问功能:

int lineWrapColumnOrWidth() const;
void setLineWrapColumnOrWidth(int w);

lineWrapMode : LineWrapMode
  此属性保存换行模式,默认模式为WidgetWidth,这会导致文字被包装在文本编辑的右边缘。在空格处进行换行,使整个单词保持完整。如果要在单词中进行换行,请使用setWordWrapMode()。如果将包裹模式设置为FixedPixelWidth或FixedColumnWidth,则还应使用所需的宽度调用setLineWrapColumnOrWidth()。
访问功能:

QTextEdit::LineWrapMode lineWrapMode() const;
void setLineWrapMode(QTextEdit::LineWrapMode mode)

overwriteMode : bool
  此属性保存用户输入的文本是否将覆盖现有文本。与许多文本编辑器一样,文本编辑器小部件可以配置为使用用户输入的新文本插入或覆盖现有文本。如果此属性为true,则现有文本将被新文本逐字符覆盖;否则,将在光标位置插入文本,替换现有文本。默认情况下,此属性为false(新文本不会覆盖现有文本)。Qt4.1中引入了此属性。
访问功能:

QTextEdit::LineWrapMode lineWrapMode() const;
void setLineWrapMode(QTextEdit::LineWrapMode mode)

placeholderText : QString
  此属性保存编辑器占位符文本。只要document()为空,设置此属性将使编辑器显示灰色占位符文本。默认情况下,此属性包含空字符串。Qt5.2中引入了此属性。
访问功能:

QString placeholderText() const;
void setPlaceholderText(const QString &placeholderText);

plainText : QString
  此属性获取并将文本编辑器的内容设置为纯文本。设置属性时,将删除以前的内容并重置撤消/重做历史记录。如果文本编辑有另一种内容类型,则如果调用toPlainText(),则不会将其替换为纯文本。唯一的例外是非中断空间nbsp;,将转换为标准空间。默认情况下,对于没有内容的编辑器,此属性包含空字符串。Qt4.3中引入了此属性。
访问功能:

QString toPlainText() const;
void setPlainText(const QString &text);

readOnly : bool
  此属性保存文本编辑是否为只读。在只读文本编辑中,用户只能浏览文本并选择文本;无法修改文本。此属性的默认值为false。
访问功能:

bool isReadOnly() const;
void setReadOnly(bool ro);

tabChangesFocus : bool
  此属性保存选项卡是更改焦点还是接受作为输入。在某些情况下,文本编辑不应允许用户输入制表符或使用Tab键更改缩进,因为这会打断焦点链。默认值为false。
访问功能:

bool tabChangesFocus() const;
void setTabChangesFocus(bool b);

tabStopDistance : qreal
  此属性以像素为单位保留制表符停止距离。默认情况下,此属性包含80像素的值。Qt5.10中引入了此属性。
访问功能:

qreal tabStopDistance() const
void setTabStopDistance(qreal distance)

textInteractionFlags : Qt::TextInteractionFlags
  指定小部件应如何与用户输入交互。默认值取决于QTextEdit是只读还是可编辑,以及它是否是QTextBrowser。Qt4.2中引入了此属性。
访问功能:

Qt::TextInteractionFlags textInteractionFlags() const;
void setTextInteractionFlags(Qt::TextInteractionFlags flags);

undoRedoEnabled : bool
  此属性保存是否启用了撤消和重做。如果此属性为true,并且存在可以撤消(或重做)的操作,则用户只能撤消或重做操作。
访问功能:

bool isUndoRedoEnabled() const;
void setUndoRedoEnabled(bool enable);

wordWrapMode : QTextOption::WrapMode
  此属性保存按单词包装文本时QTextEdit将使用的模式。默认情况下,此属性设置为QTExtraption::WrapAtWordBoundaryOrAnywhere。
访问功能:

QTextOption::WrapMode wordWrapMode() const;
void setWordWrapMode(QTextOption::WrapMode policy);

QTextEdit类函数

QTextEdit(QWidget *parent = nullptr);//使用父对象构造空QTextEdit。

QTextEdit(const QString &text, QWidget *parent = nullptr);//使用父对象构造QTextEdit。文本编辑将显示文本。文本被解释为html。

virtual ~QTextEdit();//析构

bool acceptRichText() const;//是否接受用户的富文本插入

Qt::Alignment alignment() const//返回当前段落的对齐方式。

QString anchorAt(const QPoint &pos) const;//返回位置pos处锚点的引用,如果该点不存在锚点,则返回空字符串。

QTextEdit::AutoFormatting autoFormatting() const;//返回自动格式化功能集

bool canPaste() const;//返回是否可以将文本从剪贴板粘贴到textedit中。

QMenu *createStandardContextMenu();//此函数用于创建标准上下文菜单,当用户用鼠标右键单击文本编辑时,将显示该菜单。它是从默认的contextMenuEvent()处理程序调用的。弹出菜单的所有权转移给调用者。

QMenu *createStandardContextMenu(const QPoint &position);//此函数用于创建标准上下文菜单,当用户用鼠标右键单击文本编辑时,将显示该菜单。它是从默认的contextMenuEvent()处理程序中调用的,它在文档坐标中的鼠标单击位置。这可以启用对用户单击位置敏感的操作。弹出菜单的所有权转移给调用者。

QTextCharFormat currentCharFormat() const;//返回插入新文本时使用的字符格式。

QFont currentFont() const;//返回当前格式的字体。

QTextCursor cursorForPosition(const QPoint &pos) const;//返回位置处的QTextCursor(在视口坐标中)。

QRect cursorRect(const QTextCursor &cursor) const;//返回包含光标的矩形(在视口坐标中)。

QRect cursorRect() const;//返回包含光标的矩形(在视口坐标中)。

int cursorWidth() const;//返回以像素为单位光标的宽度。

QTextDocument *document() const;//返回文档的内容

QString documentTitle() const;//返回文档的标题

void ensureCursorVisible();//如有必要,通过滚动文本编辑确保光标可见。

QList<QTextEdit::ExtraSelection> extraSelections() const;//返回以前设置的额外选择。

bool find(const QString &exp, QTextDocument::FindFlags options = ...);//使用给定的选项查找字符串exp的下一个匹配项。如果找到exp并更改光标以选择匹配项,则返回true;否则返回false。

bool find(const QRegExp &exp, QTextDocument::FindFlags options = ...);//这是一个重载函数。使用给定的选项查找下一个匹配正则表达式exp的匹配项。此重载忽略了QTextDocument::FindCaseSensitively选项,请改用QRegExp::CaseSensitively。如果找到匹配项并更改光标以选择匹配项,则返回true;否则返回false。

QString fontFamily() const;//返回当前格式的字体系列。

bool fontItalic() const;//如果当前格式的字体为斜体,则返回true;否则返回false。

qreal fontPointSize() const;//返回当前格式字体的点大小。

bool fontUnderline() const;//如果当前格式的字体带有下划线,则返回true;否则返回false。

int fontWeight() const;//返回当前格式的字体大小。

bool isReadOnly() const;//返回文本编辑是否为只读

bool isUndoRedoEnabled() const;//返回是否启用了撤消和重做

int lineWrapColumnOrWidth() const;//返回文本将被换行的位置

QTextEdit::LineWrapMode lineWrapMode() const;//返回换行模式

virtual QVariant loadResource(int type, const QUrl &name);//加载由给定类型和名称指定的资源。

void mergeCurrentCharFormat(const QTextCharFormat &modifier);//通过在编辑器的光标上调用QTextCursor::mergeCharFormat,将修改器中指定的属性合并到当前字符格式中。如果编辑器有一个选择,则修改器的特性将直接应用于该选择。

void moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor);//通过执行给定的操作来移动光标。如果模式为QTextCursor::KeepAnchor,光标将选择它移动到的文本。这与用户按住Shift键并使用光标键移动光标时达到的效果相同。

bool overwriteMode() const;//返回用户输入的文本是否将覆盖现有文本

QString placeholderText() const;//返回编辑器占位符文本

void print(QPagedPaintDevice *printer) const;//将文本编辑的文档打印到给定打印机的便利功能。这相当于直接对文档调用print方法,只是此函数还支持QPrinter::Selection作为打印范围。

void setAcceptRichText(bool accept);//设置是否接受用户的富文本插入

void setAutoFormatting(QTextEdit::AutoFormatting features);//设置自动格式化功能集

void setCurrentCharFormat(const QTextCharFormat &format);//置插入新文本时要使用的字符格式

void setCursorWidth(int width);//设置以像素为单位光标的宽度。

void setDocument(QTextDocument *document);//设置文档的内容

void setDocumentTitle(const QString &title);//设置文档的标题

void setExtraSelections(const QList<QTextEdit::ExtraSelection> &selections);//设置以前设置的额外选择

void setLineWrapColumnOrWidth(int w);//设置文本将被换行的位置

void setLineWrapMode(QTextEdit::LineWrapMode mode);//设置换行模式

void setOverwriteMode(bool overwrite);//设置用户输入的文本是否将覆盖现有文本

void setPlaceholderText(const QString &placeholderText);//设置编辑器占位符文本

void setReadOnly(bool ro);//设置文本编辑是否为只读

void setTabChangesFocus(bool b);//设置选项卡是更改焦点还是接受作为输入

void setTabStopDistance(qreal distance);//设置以像素为单位保留制表符停止距离

void setTextCursor(const QTextCursor &cursor);//设置可见光标。

void setTextInteractionFlags(Qt::TextInteractionFlags flags);//设置小部件应如何与用户输入交互。

void setUndoRedoEnabled(bool enable);//设置是否启用撤消和重做

void setWordWrapMode(QTextOption::WrapMode policy);//设置按单词包装文本时QTextEdit将使用的模式

bool tabChangesFocus() const;//返回选项卡是更改焦点还是接受作为输入

qreal tabStopDistance() const;//返回以像素为单位保留制表符停止距离

QColor textBackgroundColor() const;//返回当前格式的文本背景色。

QColor textColor() const;//返回当前格式的文本颜色。

QTextCursor textCursor() const;//返回表示当前可见光标的QTextCursor的副本。请注意,对返回的游标所做的更改不会影响QTextEdit的游标;使用setTextCursor()更新可见光标。

Qt::TextInteractionFlags textInteractionFlags() const;//小部件应如何与用户输入交互。

QString toHtml() const;//将文本编辑的文本返回为html。

QString toPlainText() const;//以纯文本形式返回文本编辑的文本。

QTextOption::WrapMode wordWrapMode() const;//返回按单词包装文本时QTextEdit将使用的模式

QTextEdit信号

void copyAvailable(bool yes);//在文本编辑中选择或取消选择文本时,会发出此信号。当选择文本时,将发出该信号,并将yes设置为true。如果未选择任何文本或取消选择所选文本,则发出该信号,并将“是”设置为“假”。如果“是”,则可以使用copy()将所选内容复制到剪贴板。如果yes为false,则copy()不执行任何操作。

void currentCharFormatChanged(const QTextCharFormat &f);//如果当前字符格式已更改,例如由于光标位置的更改而导致更改,则会发出此信号。新的格式是f。

void cursorPositionChanged();//每当光标位置改变时,就会发出该信号。

void redoAvailable(bool available);//每当重做操作变得可用(可用为true)或不可用(可用为false)时,就会发出此信号。

void selectionChanged();//只要选择发生变化,就会发出该信号。

void textChanged();//每当文档内容发生变化时,就会发出该信号;例如,插入或删除文本时,或应用格式时。注意:属性html的通知程序信号。

void undoAvailable(bool available);//每当撤消操作可用(可用为true)或不可用(可用为false)时,都会发出此信号。

QTextEdit槽函数


void append(const QString &text);//在文本编辑的结尾追加一个新段落。注意:附加的新段落将具有与当前段落相同的字符格式和块格式,这取决于光标的位置。

void clear();//删除文本编辑中的所有文本。请注意,此函数将清除撤消/重做历史记录。

void copy();//将任何选定文本复制到剪贴板。

void cut();//将选定文本复制到剪贴板并从文本编辑中删除。如果没有选定的文本,则不会发生任何事情。

void insertHtml(const QString &text);//在当前光标位置插入假定为html格式的文本的便利槽。相当于 edit->textCursor().insertHtml(fragment);

void insertPlainText(const QString &text);//在当前光标位置插入文本的便利槽。相当于edit->textCursor().insertText(text);

void paste();//将剪贴板中的文本粘贴到当前光标位置的文本编辑中。如果剪贴板中没有文本,则不会发生任何事情。要更改此函数的行为,即修改QTextEdit可以粘贴的内容及其粘贴方式,请重新实现virtual canInsertFromMimeData()和insertFromMimeData()函数。

void redo();//重做最后一个操作。如果没有要重做的操作,即在撤消/重做历史记录中没有重做步骤,则不会发生任何事情。

void scrollToAnchor(const QString &name);//滚动文本编辑,使具有给定名称的锚可见;如果名称为空、已可见或找不到,则不执行任何操作。

void selectAll();//选中全部文本。

void setAlignment(Qt::Alignment a);//将当前段落的对齐方式设置为a。有效的对齐方式有Qt::AlignLeft、Qt::AlignRight、Qt::AlignJustify和Qt::AlignCenter(水平居中)。

void setCurrentFont(const QFont &f);//将当前格式的字体设置为f。

void setFontFamily(const QString &fontFamily);//将当前格式的字体系列设置为fontFamily。

void setFontItalic(bool italic);//如果italic为true,则将当前格式设置为italic;否则,将当前格式设置为非斜体。

void setFontPointSize(qreal s);//将当前格式的点大小设置为s。请注意,如果s为零或负,则不定义此函数的行为。

void setFontUnderline(bool underline);//如果下划线为true,则将当前格式设置为下划线;否则,将当前格式设置为非下划线。

void setFontWeight(int weight);//将当前格式的字体权重设置为给定的权重,其中使用的值在QFont::weight枚举定义的范围内。

void setHtml(const QString &text);//更改文本编辑的文本。删除以前的任何文本,并清除撤消/重做历史记录。

void setPlainText(const QString &text);//将文本编辑的文本更改为字符串文本。之前的任何文本都将被删除。文本被解释为纯文本。请注意,此函数将清除撤消/重做历史记录。

void setText(const QString &text);//设置文本编辑的文本。文本可以是纯文本或HTML,文本编辑将尝试猜测正确的格式。直接使用setHtml()或setPlainText()避免文本编辑的猜测。

void setTextBackgroundColor(const QColor &c);//将当前格式的文本背景色设置为c。

void setTextColor(const QColor &c);//将当前格式的文本颜色设置为c。

void undo();//撤消最后一个操作。如果没有要撤消的操作,即在撤消/重做历史记录中没有撤消步骤,则不会发生任何操作。

void zoomIn(int range = 1);//通过使基本字体大小范围点变大并将所有字体大小重新计算为新大小来放大文本。这不会更改任何图像的大小。

void zoomOut(int range = 1);//通过缩小基本字体大小范围点并将所有字体大小重新计算为新大小来缩小文本。这不会更改任何图像的大小。

protected函数


virtual bool canInsertFromMimeData(const QMimeData *source) const;//如果源指定的MIME数据对象的内容可以解码并插入到文档中,则此函数返回true。例如,在拖动操作期间,当鼠标进入此小部件,需要确定是否可以接受拖放操作时,将调用该小部件。重新实现此函数以启用对其他MIME类型的拖放支持。

virtual QMimeData *createMimeDataFromSelection() const;//此函数返回一个新的MIME数据对象,以表示文本编辑当前选择的内容。当选择需要封装到新的QMimeData对象中时调用它;例如,开始拖放操作时,或将数据复制到剪贴板时。如果重新实现此函数,请注意,返回的QMimeData对象的所有权将传递给调用方。可以使用textCursor()函数检索所选内容。

virtual void insertFromMimeData(const QMimeData *source);//此函数用于将源指定的MIME数据对象的内容插入到当前光标位置的文本编辑中。每当由于剪贴板粘贴操作而插入文本时,或当文本编辑从拖放操作接受数据时,都会调用该函数。重新实现此函数以启用对其他MIME类型的拖放支持。

重新实现的protected函数


virtual void changeEvent(QEvent *e) override;

virtual void contextMenuEvent(QContextMenuEvent *event) override;

virtual void dragEnterEvent(QDragEnterEvent *e) override;

virtual void dragLeaveEvent(QDragLeaveEvent *e) override;

virtual void dragMoveEvent(QDragMoveEvent *e) override;

virtual void dropEvent(QDropEvent *e) override;

virtual void focusInEvent(QFocusEvent *e) override;

virtual bool focusNextPrevChild(bool next) override;

virtual void focusOutEvent(QFocusEvent *e) override;

virtual void inputMethodEvent(QInputMethodEvent *e) override;

virtual void keyPressEvent(QKeyEvent *e) override;

virtual void keyReleaseEvent(QKeyEvent *e) override;

virtual void mouseDoubleClickEvent(QMouseEvent *e) override;

virtual void mouseMoveEvent(QMouseEvent *e) override;

virtual void mousePressEvent(QMouseEvent *e) override;

virtual void mouseReleaseEvent(QMouseEvent *e) override;

virtual void paintEvent(QPaintEvent *event) override;

virtual void resizeEvent(QResizeEvent *e) override;

virtual void scrollContentsBy(int dx, int dy) override;

virtual void showEvent(QShowEvent *) override;

virtual void wheelEvent(QWheelEvent *e) override;

静态公共成员

const QMetaObject  staticMetaObject;
上一篇:51单片机实战教程(21 同步串行外围通信接口SPI)


下一篇:字符串有关知识点默写(1)