En esta página

QTextEdit Class

La clase QTextEdit proporciona un widget que se utiliza para editar y mostrar tanto texto plano como enriquecido. Más...

Cabecera: #include <QTextEdit>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Hereda: QAbstractScrollArea
Heredado por:

QTextBrowser

Tipos públicos

struct ExtraSelection
flags AutoFormatting
enum AutoFormattingFlag { AutoNone, AutoBulletList, AutoAll }
enum LineWrapMode { NoWrap, WidgetWidth, FixedPixelWidth, FixedColumnWidth }

Propiedades

Funciones públicas

QTextEdit(QWidget *parent = nullptr)
QTextEdit(const QString &text, QWidget *parent = nullptr)
virtual ~QTextEdit()
bool acceptRichText() const
Qt::Alignment alignment() const
QString anchorAt(const QPoint &pos) const
QTextEdit::AutoFormatting autoFormatting() const
bool canPaste() const
QMenu *createStandardContextMenu()
QMenu *createStandardContextMenu(const QPoint &position)
QTextCharFormat currentCharFormat() const
QFont currentFont() const
QTextCursor cursorForPosition(const QPoint &pos) const
QRect cursorRect() const
QRect cursorRect(const QTextCursor &cursor) 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 = QTextDocument::FindFlags())
bool find(const QRegularExpression &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags())
QString fontFamily() const
bool fontItalic() const
qreal fontPointSize() const
bool fontUnderline() const
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)
void moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor)
bool overwriteMode() const
QString placeholderText() const
void print(QPagedPaintDevice *printer) const
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)
bool tabChangesFocus() const
qreal tabStopDistance() const
QColor textBackgroundColor() const
QColor textColor() const
QTextCursor textCursor() const
Qt::TextInteractionFlags textInteractionFlags() const
QString toHtml() const
QString toMarkdown(QTextDocument::MarkdownFeatures features = QTextDocument::MarkdownDialectGitHub) const
QString toPlainText() const
QTextOption::WrapMode wordWrapMode() const

Funciones públicas reimplementadas

virtual QVariant inputMethodQuery(Qt::InputMethodQuery property) const override

Ranuras públicas

void append(const QString &text)
void clear()
void copy()
void cut()
void insertHtml(const QString &text)
void insertPlainText(const QString &text)
void paste()
void redo()
void scrollToAnchor(const QString &name)
void selectAll()
void setAlignment(Qt::Alignment a)
void setCurrentFont(const QFont &f)
void setFontFamily(const QString &fontFamily)
void setFontItalic(bool italic)
void setFontPointSize(qreal s)
void setFontUnderline(bool underline)
void setFontWeight(int weight)
void setHtml(const QString &text)
void setMarkdown(const QString &markdown)
void setPlainText(const QString &text)
void setText(const QString &text)
void setTextBackgroundColor(const QColor &c)
void setTextColor(const QColor &c)
void undo()
void zoomIn(int range = 1)
void zoomOut(int range = 1)

Señales

void copyAvailable(bool yes)
void currentCharFormatChanged(const QTextCharFormat &f)
void cursorPositionChanged()
void redoAvailable(bool available)
void selectionChanged()
void textChanged()
void undoAvailable(bool available)

Funciones protegidas

virtual bool canInsertFromMimeData(const QMimeData *source) const
virtual QMimeData *createMimeDataFromSelection() const
virtual void insertFromMimeData(const QMimeData *source)

Funciones protegidas reimplementadas

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

Descripción detallada

Introducción y Conceptos

QTextEdit es un visor/editor WYSIWYG avanzado que soporta formato de texto enriquecido usando etiquetas de estilo HTML, o formato Markdown. Está optimizado para manejar documentos de gran tamaño y responder rápidamente a las entradas del usuario.

QTextEdit trabaja con párrafos y caracteres. Un párrafo es una cadena formateada que se envuelve en palabras para ajustarse al ancho del widget. Por defecto, cuando se lee texto plano, una nueva línea significa un párrafo. Un documento consta de cero o más párrafos. Las palabras del párrafo se alinean de acuerdo con la alineación del párrafo. Los párrafos se separan mediante saltos de línea. Cada carácter dentro de un párrafo tiene sus propios atributos, por ejemplo, fuente y color.

QTextEdit puede mostrar imágenes, listas y tablas. Si el texto es demasiado grande para verlo dentro de la ventana de edición de texto, aparecerán barras de desplazamiento. La edición de texto puede cargar tanto texto plano como archivos de texto enriquecido. El texto enriquecido puede describirse utilizando un subconjunto de marcado HTML 4; consulte la página Subconjunto de HTML admitido para obtener más información.

Si sólo necesita mostrar un pequeño fragmento de texto enriquecido utilice QLabel.

El soporte de texto enriquecido en Qt está diseñado para proporcionar una forma rápida, portátil y eficiente de añadir una ayuda en línea razonable a las aplicaciones, y para proporcionar una base para los editores de texto enriquecido. Si el soporte HTML le parece insuficiente para sus necesidades, puede considerar el uso de Qt WebKit, que proporciona un widget de navegador web con todas las funciones.

La forma del cursor del ratón en un QTextEdit es Qt::IBeamCursor por defecto. Puede cambiarse a través de la propiedad cursor de viewport().

Utilización de QTextEdit como widget de visualización

QTextEdit puede mostrar un amplio subconjunto de HTML, incluyendo tablas e imágenes.

El texto puede establecerse o sustituirse utilizando setHtml(), que borra cualquier texto existente y lo sustituye por el texto pasado en la llamada a setHtml(). Si llama a setHtml() con HTML heredado y luego llama a toHtml(), el texto devuelto puede tener un marcado diferente, pero se mostrará igual. El texto completo puede borrarse con clear().

El texto también puede fijarse o sustituirse utilizando setMarkdown(), y se aplican las mismas advertencias: si luego llama a toMarkdown(), el texto que se devuelve puede ser diferente, pero el significado se conserva en la medida de lo posible. Markdown con algo de HTML incrustado puede ser analizado, con las mismas limitaciones que setHtml(); pero toMarkdown() sólo escribe Markdown "puro", sin HTML incrustado.

El texto propiamente dicho puede insertarse utilizando la clase QTextCursor o mediante las funciones de conveniencia insertHtml(), insertPlainText(), append() o paste(). QTextCursor también es capaz de insertar objetos complejos como tablas o listas en el documento, y se ocupa de crear selecciones y aplicar cambios al texto seleccionado.

Por defecto, la edición de texto envuelve las palabras en espacios en blanco para que quepan dentro del widget de edición de texto. La función setLineWrapMode() se utiliza para especificar el tipo de ajuste de línea que desea, o NoWrap si no desea ningún ajuste. Llame a setLineWrapMode() para establecer un ancho de píxel fijo FixedPixelWidth, o columna de caracteres (por ejemplo, columna 80) FixedColumnWidth con los píxeles o columnas especificados con setLineWrapColumnOrWidth(). Si utilizas el ajuste de palabras al ancho del widget WidgetWidth, puedes especificar si romper en los espacios en blanco o en cualquier lugar con setWordWrapMode().

La función find() se puede utilizar para encontrar y seleccionar una cadena dada dentro del texto.

Si desea limitar el número total de párrafos en un QTextEdit, como por ejemplo suele ser útil en un visor de registros, entonces puede utilizar la propiedad maximumBlockCount de QTextDocument para ello.

Key Bindings de sólo lectura

Cuando QTextEdit se utiliza en modo de sólo lectura, los atajos de teclado se limitan a la navegación, y el texto sólo puede seleccionarse con el ratón:

Teclas pulsadasAcción
ArribaMueve una línea hacia arriba.
AbajoDesplaza una línea hacia abajo.
IzquierdaMueve un carácter a la izquierda.
DerechaMueve un carácter a la derecha.
PáginaArribaMueve una página hacia arriba.
PáginaAbajoMueve una página hacia abajo.
InicioSe mueve al principio del texto.
FinSe desplaza al final del texto.
Alt+RuedaDesplaza la página horizontalmente (la rueda es la del ratón).
Ctrl+RuedaAmplía el texto.
Ctrl+ASelecciona todo el texto.

La edición de texto puede proporcionar alguna meta-información. Por ejemplo, la función documentTitle() devolverá el texto dentro de las etiquetas HTML <title>.

Nota: El zoom en documentos HTML sólo funciona si el tamaño de la fuente no es fijo.

Utilización de QTextEdit como editor

Toda la información sobre el uso de QTextEdit como un widget de visualización también se aplica aquí.

Los atributos del formato char actual se establecen con setFontItalic(), setFontWeight(), setFontUnderline(), setFontFamily(), setFontPointSize(), setTextColor() y setCurrentFont(). La alineación del párrafo actual se establece con setAlignment().

La selección de texto se gestiona mediante la clase QTextCursor, que proporciona funciones para crear selecciones, recuperar el contenido del texto o eliminar selecciones. Puede recuperar el objeto que se corresponde con el cursor visible para el usuario utilizando el método textCursor(). Si desea establecer una selección en QTextEdit sólo tiene que crear una en un objeto QTextCursor y luego hacer que ese cursor sea el cursor visible utilizando setTextCursor(). La selección puede ser copiada al portapapeles con copy(), o cortada al portapapeles con cut(). Se puede seleccionar todo el texto con selectAll().

Cuando se mueve el cursor y cambian los atributos de formato subyacentes, se emite la señal currentCharFormatChanged() para reflejar los nuevos atributos en la nueva posición del cursor.

La señal textChanged() se emite cada vez que cambia el texto (como resultado de setText() o a través del propio editor).

QTextEdit contiene un objeto QTextDocument que puede ser recuperado utilizando el método document(). También puede establecer su propio objeto documento utilizando setDocument().

QTextDocument proporciona una función isModified() que devolverá true si el texto ha sido modificado desde que se cargó o desde la última llamada a setModified con false como argumento. Además proporciona métodos para deshacer y rehacer.

Arrastrar y soltar

QTextEdit también soporta el comportamiento personalizado de arrastrar y soltar. Por defecto, QTextEdit insertará texto plano, HTML y texto enriquecido cuando el usuario suelte datos de estos tipos MIME sobre un documento. Reimplemente canInsertFromMimeData() y insertFromMimeData() para añadir soporte para tipos MIME adicionales.

Por ejemplo, para permitir al usuario arrastrar y soltar una imagen en un QTextEdit, podrías implementar estas funciones de la siguiente manera:

bool TextEdit::canInsertFromMimeData( const QMimeData *source ) const
{
    if (source->hasImage())
        return true;
    else
        return QTextEdit::canInsertFromMimeData(source);
}

Añadimos soporte para tipos MIME de imagen devolviendo true. Para todos los demás tipos MIME, utilizamos la implementación por defecto.

void TextEdit::insertFromMimeData( const QMimeData *source )
{
    if (source->hasImage())
    {
        QImage image = qvariant_cast<QImage>(source->imageData());
        QTextCursor cursor = this->textCursor();
        QTextDocument *document = this->document();
        document->addResource(QTextDocument::ImageResource, QUrl("image"), image);
        cursor.insertImage("image");
    }
}

Descomprimimos la imagen de QVariant que contiene la fuente MIME y la insertamos en el documento como un recurso.

Edición de enlaces de teclado

La lista de combinaciones de teclas que se implementan para la edición:

Teclas pulsadasAcción
RetrocesoBorra el carácter situado a la izquierda del cursor.
SuprimirElimina el carácter situado a la derecha del cursor.
Ctrl+CCopia el texto seleccionado en el portapapeles.
Ctrl+InsertarCopia el texto seleccionado en el portapapeles.
Ctrl+KBorra hasta el final de la línea.
Ctrl+VPega el texto del portapapeles en la edición de texto.
Mayús+InsertarPega el texto del portapapeles en la edición de texto.
Ctrl+XBorra el texto seleccionado y lo copia en el portapapeles.
Mayús+SuprElimina el texto seleccionado y lo copia en el portapapeles.
Ctrl+ZDeshace la última operación.
Ctrl+YRehace la última operación.
IzquierdaMueve el cursor un carácter a la izquierda.
Ctrl+IzquierdaMueve el cursor una palabra a la izquierda.
DerechaMueve el cursor un carácter a la derecha.
Ctrl+DerechaMueve el cursor una palabra hacia la derecha.
ArribaMueve el cursor una línea hacia arriba.
AbajoDesplaza el cursor una línea hacia abajo.
Re PágMueve el cursor una página hacia arriba.
PáginaAbajoDesplaza el cursor una página hacia abajo.
InicioMueve el cursor al principio de la línea.
Ctrl+InicioDesplaza el cursor al principio del texto.
FinDesplaza el cursor al final de la línea.
Ctrl+FinDesplaza el cursor al final del texto.
Alt+RuedaDesplaza la página horizontalmente (la Rueda es la rueda del ratón).

Para seleccionar (marcar) texto, mantén pulsada la tecla Mayús mientras pulsas una de las teclas de movimiento, por ejemplo, Mayús+Derecha seleccionará el carácter de la derecha, y Mayús+Ctrl+Derecha seleccionará la palabra de la derecha, etc.

Véase también QTextDocument, QTextCursor, Ejemplo de resaltador de sintaxis y Procesamiento de texto enriquecido.

Documentación de tipos de miembros

enum QTextEdit::AutoFormattingFlag
flags QTextEdit::AutoFormatting

ConstanteValorDescripción
QTextEdit::AutoNone0No hacer ningún formato automático.
QTextEdit::AutoBulletList0x00000001Crear automáticamente listas con viñetas (por ejemplo, cuando el usuario introduce un asterisco ('*') en la columna de la izquierda, o pulsa Intro en un elemento de lista existente.
QTextEdit::AutoAll0xffffffffAplicar todos los formatos automáticos. Actualmente sólo se admiten las listas con viñetas automáticas.

El tipo AutoFormatting es un typedef para QFlags<AutoFormattingFlag>. Almacena una combinación OR de valores AutoFormattingFlag.

enum QTextEdit::LineWrapMode

ConstanteValor
QTextEdit::NoWrap0
QTextEdit::WidgetWidth1
QTextEdit::FixedPixelWidth2
QTextEdit::FixedColumnWidth3

Documentación de propiedades

acceptRichText : bool

Esta propiedad establece si la edición de texto acepta inserciones de texto enriquecido por parte del usuario.

Cuando esta propiedad está establecida a false la edición de texto sólo aceptará la entrada de texto plano por parte del usuario. Por ejemplo a través del portapapeles o arrastrando y soltando.

El valor por defecto de esta propiedad es true.

Funciones de acceso:

bool acceptRichText() const
void setAcceptRichText(bool accept)

autoFormatting : AutoFormatting

Esta propiedad contiene el conjunto habilitado de características de autoformateo

El valor puede ser cualquier combinación de los valores del enum AutoFormattingFlag. El valor por defecto es AutoNone. Elija AutoAll para habilitar todo el formateo automático.

Actualmente, la única característica de formateo automático proporcionada es AutoBulletList; futuras versiones de Qt pueden ofrecer más.

Funciones de acceso:

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

cursorWidth : int

Esta propiedad especifica la anchura del cursor en píxeles. El valor por defecto es 1.

Funciones de acceso:

int cursorWidth() const
void setCursorWidth(int width)

document : QTextDocument*

Esta propiedad contiene el documento subyacente del editor de texto.

Nota: El editor no toma propiedad del documento a menos que sea el objeto padre del documento. El objeto padre del documento proporcionado sigue siendo el propietario del objeto. Si el documento previamente asignado es hijo del editor, entonces será eliminado.

Funciones de acceso:

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

documentTitle : QString

Esta propiedad contiene el título del documento analizado a partir del texto.

Por defecto, para un documento vacío recién creado, esta propiedad contiene una cadena vacía.

Funciones de acceso:

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

html : QString

Esta propiedad proporciona una interfaz HTML para el texto de la edición de texto.

toHtml() devuelve el texto de la edición de texto como html.

setHtml() cambia el texto de la edición de texto. Se elimina cualquier texto anterior y se borra el historial de deshacer/rehacer. El texto introducido se interpreta como texto enriquecido en formato html. currentCharFormat() también se restablece, a menos que textCursor() ya esté al principio del documento.

Nota: Es responsabilidad de quien llama asegurarse de que el texto se decodifica correctamente cuando se crea un QString que contiene HTML y se pasa a setHtml().

Por defecto, para un documento vacío recién creado, esta propiedad contiene texto para describir un documento HTML 4.0 sin cuerpo de texto.

Funciones de acceso:

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

Señal del notificador:

void textChanged()

Véase también Subconjunto HTML soportado y plainText.

lineWrapColumnOrWidth : int

Esta propiedad contiene la posición (en píxeles o columnas, dependiendo del modo de ajuste) en la que se ajustará el texto.

Si el modo de ajuste es FixedPixelWidth, el valor es el número de píxeles desde el borde izquierdo de la edición de texto en el que el texto debe ajustarse. Si el modo de ajuste es FixedColumnWidth, el valor es el número de columna (en columnas de caracteres) desde el borde izquierdo de la edición de texto en el que se ajustará el texto.

Por defecto, esta propiedad contiene el valor 0.

Funciones de acceso:

int lineWrapColumnOrWidth() const
void setLineWrapColumnOrWidth(int w)

Véase también lineWrapMode.

lineWrapMode : LineWrapMode

Esta propiedad contiene el modo de ajuste de línea

El modo por defecto es WidgetWidth, que hace que las palabras se ajusten en el borde derecho de la edición de texto. El ajuste se produce en los espacios en blanco, manteniendo intactas las palabras completas. Si desea que el ajuste se produzca dentro de las palabras, utilice setWordWrapMode(). Si establece un modo de ajuste de FixedPixelWidth o FixedColumnWidth también debe llamar a setLineWrapColumnOrWidth() con el ancho que desee.

Funciones de acceso:

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

Véase también lineWrapColumnOrWidth.

markdown : QString

Esta propiedad proporciona una interfaz Markdown para el texto de la edición de texto.

toMarkdown() devuelve el texto de la edición de texto como Markdown "puro", sin ningún formato HTML incrustado. Algunas características que admite QTextDocument (como el uso de colores específicos y fuentes con nombre) no pueden expresarse en Markdown "puro", por lo que se omitirán.

setMarkdown() cambia el texto de la edición de texto. Se elimina cualquier texto anterior y se borra el historial de deshacer/rehacer. El texto de entrada se interpreta como texto enriquecido en formato Markdown.

El análisis sintáctico de HTML incluido en la cadena markdown se realiza del mismo modo que en setHtml; sin embargo, no se admite el formato Markdown dentro de bloques HTML.

Algunas funciones del analizador pueden activarse o desactivarse mediante el argumento features:

ConstanteDescripción
MarkdownNoHTMLCualquier etiqueta HTML en el texto Markdown será descartada.
MarkdownDialectCommonMarkEl analizador sólo soporta las características estandarizadas por CommonMark.
MarkdownDialectGitHubEl analizador sintáctico soporta el dialecto GitHub

El valor por defecto es MarkdownDialectGitHub.

Funciones de acceso:

QString toMarkdown(QTextDocument::MarkdownFeatures features = QTextDocument::MarkdownDialectGitHub) const
void setMarkdown(const QString &markdown)

Señal de notificador:

void textChanged()

Véase también plainText, html, QTextDocument::toMarkdown(), y QTextDocument::setMarkdown().

overwriteMode : bool

Esta propiedad mantiene si el texto introducido por el usuario sobrescribirá el texto existente

Como ocurre con muchos editores de texto, el widget del editor de texto puede configurarse para insertar o sobrescribir el texto existente con el nuevo texto introducido por el usuario.

Si esta propiedad es true, el texto existente se sobrescribe, carácter por carácter por el nuevo texto; en caso contrario, el texto se inserta en la posición del cursor, desplazando el texto existente.

Por defecto, esta propiedad es false (el texto nuevo no sobrescribe el texto existente).

Funciones de acceso:

bool overwriteMode() const
void setOverwriteMode(bool overwrite)

placeholderText : QString

Esta propiedad contiene el texto del marcador de posición del editor

Establecer esta propiedad hace que el editor muestre un texto de marcador de posición en gris siempre que document() esté vacío.

Por defecto, esta propiedad contiene una cadena vacía.

Funciones de acceso:

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

Véase también document().

plainText : QString

Esta propiedad mantiene el contenido del editor de texto como texto plano.

Los contenidos anteriores se eliminan y el historial de deshacer/rehacer se reinicia cuando se establece la propiedad. currentCharFormat() también se restablece, a menos que textCursor() ya esté al principio del documento.

Si la edición de texto tiene otro tipo de contenido, no se sustituirá por texto sin formato si se llama a toPlainText(). La única excepción a esto es el espacio sin ruptura, nbsp;, que se convertirá en espacio estándar.

Por defecto, para un editor sin contenido, esta propiedad contiene una cadena vacía.

Funciones de acceso:

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

Véase también html.

readOnly : bool

Esta propiedad indica si la edición de texto es de sólo lectura.

En una edición de texto de sólo lectura el usuario sólo puede navegar por el texto y seleccionarlo; no es posible modificarlo.

El valor por defecto de esta propiedad es false.

Funciones de acceso:

bool isReadOnly() const
void setReadOnly(bool ro)

tabChangesFocus : bool

Esta propiedad mantiene si Tab cambia el foco o es aceptado como entrada.

En algunas ocasiones las ediciones de texto no deben permitir al usuario introducir tabuladores o cambiar la sangría usando la tecla Tab, ya que esto rompe la cadena de foco. Por defecto es false.

Funciones de acceso:

bool tabChangesFocus() const
void setTabChangesFocus(bool b)

tabStopDistance : qreal

Esta propiedad contiene la distancia de parada de tabulación en píxeles

Por defecto, esta propiedad contiene un valor de 80 píxeles.

No establezca un valor menor que horizontalAdvance() del carácter QChar::VisualTabCharacter, de lo contrario el carácter de tabulación se dibujará incompleto.

Funciones de acceso:

qreal tabStopDistance() const
void setTabStopDistance(qreal distance)

Véase también QTextOption::ShowTabsAndSpaces y QTextDocument::defaultTextOption.

textInteractionFlags : Qt::TextInteractionFlags

Especifica cómo debe interactuar el widget con la entrada del usuario.

El valor por defecto depende de si QTextEdit es de sólo lectura o editable, y de si es QTextBrowser o no.

Funciones de acceso:

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

undoRedoEnabled : bool

Esta propiedad indica si las acciones de deshacer y rehacer están habilitadas.

Los usuarios sólo pueden deshacer o rehacer acciones si esta propiedad es verdadera, y si hay una acción que pueda deshacerse (o rehacerse).

Funciones de acceso:

bool isUndoRedoEnabled() const
void setUndoRedoEnabled(bool enable)

wordWrapMode : QTextOption::WrapMode

Esta propiedad contiene el modo que QTextEdit utilizará cuando envuelva texto por palabras.

Por defecto, esta propiedad se establece en QTextOption::WrapAtWordBoundaryOrAnywhere.

Funciones de acceso:

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

Véase también QTextOption::WrapMode.

Documentación de las funciones miembro

[explicit] QTextEdit::QTextEdit(QWidget *parent = nullptr)

Construye un QTextEdit vacío con el padre parent.

[explicit] QTextEdit::QTextEdit(const QString &text, QWidget *parent = nullptr)

Construye un QTextEdit con el padre parent. La edición de texto mostrará el texto text. El texto se interpreta como html.

[virtual noexcept] QTextEdit::~QTextEdit()

Destructor.

Qt::Alignment QTextEdit::alignment() const

Devuelve la alineación del párrafo actual.

Véase también setAlignment().

QString QTextEdit::anchorAt(const QPoint &pos) const

Devuelve la referencia del ancla en la posición pos, o una cadena vacía si no existe ancla en ese punto.

[slot] void QTextEdit::append(const QString &text)

Añade un nuevo párrafo con text al final de la edición de texto.

Nota: El nuevo párrafo añadido tendrá el mismo formato de caracteres y de bloque que el párrafo actual, determinado por la posición del cursor.

Véase también currentCharFormat() y QTextCursor::blockFormat().

[virtual protected] bool QTextEdit::canInsertFromMimeData(const QMimeData *source) const

Esta función devuelve true si el contenido del objeto de datos MIME, especificado por source, puede descodificarse e insertarse en el documento. Se llama, por ejemplo, cuando durante una operación de arrastre el ratón entra en este widget y es necesario determinar si es posible aceptar la operación de arrastrar y soltar.

Reimplemente esta función para habilitar el soporte de arrastrar y soltar para tipos MIME adicionales.

bool QTextEdit::canPaste() const

Devuelve si se puede pegar texto del portapapeles en el textedit.

[override virtual protected] void QTextEdit::changeEvent(QEvent *e)

Reimplementa: QFrame::changeEvent(QEvent *ev).

[slot] void QTextEdit::clear()

Borra todo el texto de la edición de texto.

Notas:

  • El historial de deshacer/rehacer también se borra.
  • currentCharFormat() se reinicia, a menos que textCursor() ya esté al principio del documento.

Véase también cut(), setPlainText(), y setHtml().

[override virtual protected] void QTextEdit::contextMenuEvent(QContextMenuEvent *event)

Reimplementa: QAbstractScrollArea::contextMenuEvent(QContextMenuEvent *e).

Muestra el menú contextual estándar creado con createStandardContextMenu().

Si no desea que la edición de texto tenga un menú contextual, puede establecer su contextMenuPolicy a Qt::NoContextMenu. Si desea personalizar el menú contextual, reimplemente esta función. Si desea ampliar el menú contextual estándar, reimplemente esta función, llame a createStandardContextMenu() y amplíe el menú devuelto.

La información sobre el evento se pasa en el objeto event.

void MyTextEdit::contextMenuEvent(QContextMenuEvent *event)
{
    QMenu *menu = createStandardContextMenu();
    menu->addAction(tr("My Menu Item"));
    //...
    menu->exec(event->globalPos());
    delete menu;
}

[slot] void QTextEdit::copy()

Copia el texto seleccionado en el portapapeles.

Véase también copyAvailable().

[signal] void QTextEdit::copyAvailable(bool yes)

Esta señal se emite cuando se selecciona o deselecciona texto en la edición de texto.

Cuando se selecciona un texto, esta señal se emite con yes igual a true. Si no se ha seleccionado ningún texto o si se ha deseleccionado el texto seleccionado, esta señal se emite con yes puesto a false.

Si yes es verdadero, puede utilizarse copy() para copiar la selección en el portapapeles. Si yes es falso entonces copy() no hace nada.

Véase también selectionChanged().

[virtual protected] QMimeData *QTextEdit::createMimeDataFromSelection() const

Esta función devuelve un nuevo objeto de datos MIME para representar el contenido de la selección actual de la edición de texto. Es llamada cuando la selección necesita ser encapsulada en un nuevo objeto QMimeData; por ejemplo, cuando se inicia una operación de arrastrar y soltar, o cuando se copian datos al portapapeles.

Si reimplementa esta función, tenga en cuenta que la propiedad del objeto QMimeData devuelto se pasa a la persona que llama. La selección puede recuperarse utilizando la función textCursor().

QMenu *QTextEdit::createStandardContextMenu()

Esta función crea el menú contextual estándar que se muestra cuando el usuario hace clic en la edición de texto con el botón derecho del ratón. Se llama desde el manejador por defecto contextMenuEvent(). La propiedad del menú contextual se transfiere a la persona que realiza la llamada.

Le recomendamos que utilice en su lugar la versión createStandardContextMenu(QPoint) que habilitará las acciones sensibles al lugar donde el usuario hizo clic.

QMenu *QTextEdit::createStandardContextMenu(const QPoint &position)

Esta función crea el menú contextual estándar que se muestra cuando el usuario hace clic en la edición de texto con el botón derecho del ratón. Se llama desde el manejador por defecto contextMenuEvent() y toma el position en coordenadas del documento donde se hizo clic con el ratón. Esto puede habilitar acciones que son sensibles a la posición donde el usuario hizo clic. La propiedad del menú emergente se transfiere a quien lo llama.

QTextCharFormat QTextEdit::currentCharFormat() const

Devuelve el formato char que se utiliza al insertar texto nuevo.

Véase también setCurrentCharFormat().

[signal] void QTextEdit::currentCharFormatChanged(const QTextCharFormat &f)

Esta señal se emite si el formato actual de los caracteres ha cambiado, por ejemplo a causa de un cambio de posición del cursor.

El nuevo formato es f.

Véase también setCurrentCharFormat().

QFont QTextEdit::currentFont() const

Devuelve la fuente del formato actual.

Véase también setCurrentFont(), setFontFamily() y setFontPointSize().

QTextCursor QTextEdit::cursorForPosition(const QPoint &pos) const

devuelve un QTextCursor en la posición pos (en coordenadas de la ventana gráfica).

[signal] void QTextEdit::cursorPositionChanged()

Esta señal se emite cada vez que cambia la posición del cursor.

QRect QTextEdit::cursorRect() const

devuelve un rectángulo (en coordenadas de la ventana gráfica) que incluye el cursor de la edición de texto.

QRect QTextEdit::cursorRect(const QTextCursor &cursor) const

devuelve un rectángulo (en coordenadas de la ventana gráfica) que incluye cursor.

[slot] void QTextEdit::cut()

Copia el texto seleccionado en el portapapeles y lo borra de la edición de texto.

Si no hay texto seleccionado no ocurre nada.

Véase también copy() y paste().

[override virtual protected] void QTextEdit::dragEnterEvent(QDragEnterEvent *e)

Reimplementa: QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event).

[override virtual protected] void QTextEdit::dragLeaveEvent(QDragLeaveEvent *e)

Reimplementa: QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *event).

[override virtual protected] void QTextEdit::dragMoveEvent(QDragMoveEvent *e)

Reimplementa: QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *event).

[override virtual protected] void QTextEdit::dropEvent(QDropEvent *e)

Reimplementa: QAbstractScrollArea::dropEvent(QDropEvent *event).

void QTextEdit::ensureCursorVisible()

Asegura que el cursor es visible desplazando la edición de texto si es necesario.

QList<QTextEdit::ExtraSelection> QTextEdit::extraSelections() const

Devuelve las selecciones extra establecidas previamente.

Véase también setExtraSelections().

bool QTextEdit::find(const QString &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags())

Busca la siguiente ocurrencia de la cadena, exp, utilizando la options dada. Devuelve true si se ha encontrado exp y cambia el cursor para seleccionar la coincidencia; en caso contrario devuelve false.

bool QTextEdit::find(const QRegularExpression &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags())

Busca la siguiente ocurrencia que coincida con la expresión regular, exp, utilizando la dirección options.

Devuelve true si se ha encontrado una coincidencia y cambia el cursor para seleccionar la coincidencia; en caso contrario devuelve false.

Advertencia: Por razones históricas, la opción de distinción entre mayúsculas y minúsculas establecida en exp se ignora. En su lugar, se utiliza options para determinar si la búsqueda distingue entre mayúsculas y minúsculas o no.

Esta es una función sobrecargada.

[override virtual protected] void QTextEdit::focusInEvent(QFocusEvent *e)

Reimplementa: QWidget::focusInEvent(QFocusEvent *event).

[override virtual protected] bool QTextEdit::focusNextPrevChild(bool next)

Reimplementa: QWidget::focusNextPrevChild(bool next).

[override virtual protected] void QTextEdit::focusOutEvent(QFocusEvent *e)

Reimplementa: QWidget::focusOutEvent(QFocusEvent *event).

QString QTextEdit::fontFamily() const

Devuelve la familia de fuentes del formato actual.

Véase también setFontFamily(), setCurrentFont() y setFontPointSize().

bool QTextEdit::fontItalic() const

Devuelve true si la fuente del formato actual es cursiva; en caso contrario devuelve false.

Véase también setFontItalic().

qreal QTextEdit::fontPointSize() const

Devuelve el tamaño en puntos de la fuente del formato actual.

Véase también setFontFamily(), setCurrentFont() y setFontPointSize().

bool QTextEdit::fontUnderline() const

Devuelve true si la fuente del formato actual está subrayada; en caso contrario devuelve false.

Véase también setFontUnderline().

int QTextEdit::fontWeight() const

Devuelve el peso de la fuente del formato actual.

Véase también setFontWeight(), setCurrentFont(), setFontPointSize() y QFont::Weight.

[override virtual protected] void QTextEdit::inputMethodEvent(QInputMethodEvent *e)

Reimplementa: QWidget::inputMethodEvent(QInputMethodEvent *event).

[override virtual] QVariant QTextEdit::inputMethodQuery(Qt::InputMethodQuery property) const

Reimplementa: QWidget::inputMethodQuery(Qt::InputMethodQuery query) const.

[virtual protected] void QTextEdit::insertFromMimeData(const QMimeData *source)

Esta función inserta el contenido del objeto de datos MIME, especificado por source, en la edición de texto en la posición actual del cursor. Es llamada siempre que se inserta texto como resultado de una operación de pegado en el portapapeles, o cuando la edición de texto acepta datos de una operación de arrastrar y soltar.

Reimplemente esta función para habilitar el soporte de arrastrar y soltar para tipos MIME adicionales.

[slot] void QTextEdit::insertHtml(const QString &text)

Ranura de conveniencia que inserta text que se asume que es de formato html en la posición actual del cursor.

Es equivalente a:

edit->textCursor().insertHtml(fragment);

Nota: Al utilizar esta función con una hoja de estilo, ésta sólo se aplicará al bloque actual del documento. Para aplicar una hoja de estilo a todo el documento, utilice en su lugar QTextDocument::setDefaultStyleSheet().

[slot] void QTextEdit::insertPlainText(const QString &text)

Ranura de conveniencia que inserta text en la posición actual del cursor.

Equivale a

edit->textCursor().insertText(text);

[override virtual protected] void QTextEdit::keyPressEvent(QKeyEvent *e)

Reimplementa: QAbstractScrollArea::keyPressEvent(QKeyEvent *e).

[override virtual protected] void QTextEdit::keyReleaseEvent(QKeyEvent *e)

Reimplementa: QWidget::keyReleaseEvent(QKeyEvent *event).

[virtual invokable] QVariant QTextEdit::loadResource(int type, const QUrl &name)

Carga el recurso especificado por los campos type y name.

Esta función es una extensión de QTextDocument::loadResource().

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

Véase también QTextDocument::loadResource().

void QTextEdit::mergeCurrentCharFormat(const QTextCharFormat &modifier)

Fusiona las propiedades especificadas en modifier en el formato de caracteres actual llamando a QTextCursor::mergeCharFormat en el cursor del editor. Si el editor tiene una selección, las propiedades de modifier se aplican directamente a la selección.

Véase también QTextCursor::mergeCharFormat().

[override virtual protected] void QTextEdit::mouseDoubleClickEvent(QMouseEvent *e)

Reimplementa: QAbstractScrollArea::mouseDoubleClickEvent(QMouseEvent *e).

[override virtual protected] void QTextEdit::mouseMoveEvent(QMouseEvent *e)

Reimplementa: QAbstractScrollArea::mouseMoveEvent(QMouseEvent *e).

[override virtual protected] void QTextEdit::mousePressEvent(QMouseEvent *e)

Reimplementa: QAbstractScrollArea::mousePressEvent(QMouseEvent *e).

[override virtual protected] void QTextEdit::mouseReleaseEvent(QMouseEvent *e)

Reimplementa: QAbstractScrollArea::mouseReleaseEvent(QMouseEvent *e).

void QTextEdit::moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor)

Mueve el cursor realizando la operación dada operation.

Si mode es QTextCursor::KeepAnchor, el cursor selecciona el texto sobre el que se mueve. Es el mismo efecto que consigue el usuario cuando mantiene pulsada la tecla Mayúsculas y mueve el cursor con las teclas del cursor.

Véase también QTextCursor::movePosition().

[override virtual protected] void QTextEdit::paintEvent(QPaintEvent *event)

Reimplementa: QAbstractScrollArea::paintEvent(QPaintEvent *event).

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de pintura pasados en event. Normalmente no es necesario reimplementar esta función en una subclase de QTextEdit.

Nota: Si se crea un QPainter, debe operar sobre el viewport().

Advertencia: El documento de texto subyacente no debe modificarse desde una reimplementación de esta función.

[slot] void QTextEdit::paste()

Pega el texto del portapapeles en la edición de texto en la posición actual del cursor.

Si no hay texto en el portapapeles no ocurre nada.

Para cambiar el comportamiento de esta función, es decir, para modificar lo que QTextEdit puede pegar y cómo se pega, reimplemente las funciones virtuales canInsertFromMimeData() y insertFromMimeData().

Véase también cut() y copy().

void QTextEdit::print(QPagedPaintDevice *printer) const

Función de conveniencia para imprimir el documento de edición de texto a la dirección printer. Esto es equivalente a llamar directamente al método print en el documento excepto que esta función también soporta QPrinter::Selection como rango de impresión.

Ver también QTextDocument::print().

[slot] void QTextEdit::redo()

Rehace la última operación.

Si no hay ninguna operación que rehacer, es decir, no hay ningún paso de rehacer en el historial de deshacer/rehacer, no ocurre nada.

Véase también undo().

[signal] void QTextEdit::redoAvailable(bool available)

Esta señal se emite cuando las operaciones de rehacer están disponibles (available es verdadero) o no disponibles (available es falso).

[override virtual protected] void QTextEdit::resizeEvent(QResizeEvent *e)

Reimplementa: QAbstractScrollArea::resizeEvent(QResizeEvent *event).

[override virtual protected] void QTextEdit::scrollContentsBy(int dx, int dy)

Reimplementa: QAbstractScrollArea::scrollContentsBy(int dx, int dy).

[slot] void QTextEdit::scrollToAnchor(const QString &name)

Desplaza la edición de texto para que el ancla con el name dado sea visible; no hace nada si el name está vacío, o ya es visible, o no se encuentra.

[slot] void QTextEdit::selectAll()

Selecciona todo el texto.

Véase también copy(), cut() y textCursor().

[signal] void QTextEdit::selectionChanged()

Esta señal se emite cada vez que cambia la selección.

Véase también copyAvailable().

[slot] void QTextEdit::setAlignment(Qt::Alignment a)

Establece la alineación del párrafo actual en a. Las alineaciones válidas son Qt::AlignLeft, Qt::AlignRight, Qt::AlignJustify y Qt::AlignCenter (que se centra horizontalmente).

Véase también alignment().

void QTextEdit::setCurrentCharFormat(const QTextCharFormat &format)

Establece el formato char que se utilizará al insertar texto nuevo en format llamando a QTextCursor::setCharFormat() en el cursor del editor. Si el editor tiene una selección, el formato char se aplica directamente a la selección.

Véase también currentCharFormat().

[slot] void QTextEdit::setCurrentFont(const QFont &f)

Establece la fuente del formato actual en f.

Véase también currentFont(), setFontPointSize() y setFontFamily().

void QTextEdit::setExtraSelections(const QList<QTextEdit::ExtraSelection> &selections)

Esta función permite marcar temporalmente ciertas regiones del documento con un color determinado, especificado como selections. Esto puede ser útil, por ejemplo, en un editor de programación para marcar toda una línea de texto con un color de fondo determinado para indicar la existencia de un punto de interrupción.

Véase también QTextEdit::ExtraSelection y extraSelections().

[slot] void QTextEdit::setFontFamily(const QString &fontFamily)

Establece la familia de fuentes del formato actual en fontFamily.

Véase también fontFamily() y setCurrentFont().

[slot] void QTextEdit::setFontItalic(bool italic)

Si italic es verdadero, establece el formato actual en cursiva; en caso contrario, establece el formato actual en no cursiva.

Véase también fontItalic().

[slot] void QTextEdit::setFontPointSize(qreal s)

Establece el tamaño de punto del formato actual en s.

Tenga en cuenta que si s es cero o negativo, el comportamiento de esta función no está definido.

Véase también fontPointSize(), setCurrentFont(), y setFontFamily().

[slot] void QTextEdit::setFontUnderline(bool underline)

Si underline es verdadero, establece el formato actual en subrayado; en caso contrario, establece el formato actual en no subrayado.

Véase también fontUnderline().

[slot] void QTextEdit::setFontWeight(int weight)

Establece el peso de la fuente del formato actual al valor dado weight, donde el valor utilizado está en el rango definido por el enum QFont::Weight.

Véase también fontWeight(), setCurrentFont(), y setFontFamily().

[slot] void QTextEdit::setPlainText(const QString &text)

Cambia el texto de la edición de texto a la cadena text. Se elimina cualquier texto anterior.

Notas:

  • text se interpreta como texto sin formato.
  • También se borra el historial de deshacer/rehacer.
  • currentCharFormat() se reinicia, a menos que textCursor() ya esté al principio del documento.

Nota: Función Setter para la propiedad plainText.

Véase también toPlainText().

[slot] void QTextEdit::setText(const QString &text)

Establece la edición de texto text. El texto puede ser texto plano o HTML y la edición de texto intentará adivinar el formato correcto.

Utilice setHtml() o setPlainText() directamente para evitar que el editor de texto lo adivine.

Véase también toPlainText() y toHtml().

[slot] void QTextEdit::setTextBackgroundColor(const QColor &c)

Establece el color de fondo del texto del formato actual en c.

Véase también textBackgroundColor().

[slot] void QTextEdit::setTextColor(const QColor &c)

Establece el color del texto del formato actual en c.

Véase también textColor().

void QTextEdit::setTextCursor(const QTextCursor &cursor)

Establece el visible cursor.

Véase también textCursor().

[override virtual protected] void QTextEdit::showEvent(QShowEvent *)

Reimplementa: QWidget::showEvent(QShowEvent *event).

QColor QTextEdit::textBackgroundColor() const

Devuelve el color de fondo del texto del formato actual.

Véase también setTextBackgroundColor().

[signal] void QTextEdit::textChanged()

Esta señal se emite siempre que cambia el contenido del documento; por ejemplo, cuando se inserta o elimina texto, o cuando se aplica formato.

Nota: Señal notificadora para las propiedades html y markdown.

QColor QTextEdit::textColor() const

Devuelve el color del texto del formato actual.

Véase también setTextColor().

QTextCursor QTextEdit::textCursor() const

Devuelve una copia de QTextCursor que representa el cursor visible en ese momento. Tenga en cuenta que los cambios en el cursor devuelto no afectan al cursor de QTextEdit; utilice setTextCursor() para actualizar el cursor visible.

Véase también setTextCursor().

QString QTextEdit::toPlainText() const

QString QTextEdit::toPlainText() const

Devuelve el texto de la edición de texto como texto plano.

Nota: Función Getter para la propiedad plainText.

Ver también QTextEdit::setPlainText().

[slot] void QTextEdit::undo()

Deshace la última operación.

Si no hay ninguna operación que deshacer, es decir, no hay ningún paso de deshacer en el historial de deshacer/rehacer, no ocurre nada.

Véase también redo().

[signal] void QTextEdit::undoAvailable(bool available)

Esta señal se emite cuando las operaciones de deshacer están disponibles (available es verdadero) o no disponibles (available es falso).

[override virtual protected] void QTextEdit::wheelEvent(QWheelEvent *e)

Reimplementa: QAbstractScrollArea::wheelEvent(QWheelEvent *e).

[slot] void QTextEdit::zoomIn(int range = 1)

Amplía el texto haciendo que el tamaño de fuente base sea range puntos mayor y recalculando todos los tamaños de fuente para que sean del nuevo tamaño. Esto no cambia el tamaño de ninguna imagen.

Véase también zoomOut().

[slot] void QTextEdit::zoomOut(int range = 1)

Reduce el texto haciendo que el tamaño de la fuente base sea range puntos más pequeño y recalculando todos los tamaños de fuente para que sean del nuevo tamaño. Esto no cambia el tamaño de ninguna imagen.

Véase también zoomIn().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.