En esta página

TextEdit QML Type

Muestra varias líneas de texto con formato editable. Más...

Import Statement: import QtQuick
Inherits:

Item

Inherited By:

TextArea

Propiedades

Señales

Métodos

Descripción detallada

El elemento TextEdit muestra un bloque de texto editable y formateado.

Puede mostrar tanto texto plano como enriquecido. Por ejemplo:

TextEdit {
    width: 240
    text: "<b>Hello</b> <i>World!</i>"
    font.family: "Helvetica"
    font.pointSize: 20
    color: "blue"
    focus: true
}

Si se define focus en true, el elemento TextEdit recibe el foco del teclado.

Tenga en cuenta que TextEdit no implementa el desplazamiento, el seguimiento del cursor ni otros comportamientos específicos de un aspecto. Por ejemplo, para añadir un desplazamiento que siga al cursor:

Flickable {
     id: flick

     width: 300; height: 200;
     contentWidth: edit.contentWidth
     contentHeight: edit.contentHeight
     clip: true

     function ensureVisible(r)
     {
         if (contentX >= r.x)
             contentX = r.x;
         else if (contentX+width <= r.x+r.width)
             contentX = r.x+r.width-width;
         if (contentY >= r.y)
             contentY = r.y;
         else if (contentY+height <= r.y+r.height)
             contentY = r.y+r.height-height;
     }

     TextEdit {
         id: edit
         width: flick.width
         focus: true
         wrapMode: TextEdit.Wrap
         onCursorRectangleChanged: flick.ensureVisible(cursorRectangle)
     }
 }

Un aspecto particular puede utilizar un desplazamiento suave (por ejemplo, utilizando SmoothedAnimation), puede tener una barra de desplazamiento visible, o una barra de desplazamiento que se desvanece para mostrar la ubicación, etc.

Las funciones cut(), copy() y paste() permiten utilizar el portapapeles. El texto puede seleccionarse con el ratón de la forma habitual, a menos que selectByMouse esté configurado como false; y con el teclado mediante las combinaciones de teclas Shift+arrow, a menos que selectByKeyboard esté configurado como false. Para seleccionar texto mediante programación, puede configurar las propiedades selectionStart y selectionEnd, o utilizar selectAll() o selectWord().

Puede traducir entre posiciones del cursor (caracteres desde el inicio del documento) y puntos de píxel utilizando positionAt() y positionToRectangle().

Véase también Text, TextInput, TextArea, y Qt Quick Controls - Editor de texto.

Documentación de propiedades

activeFocusOnPress : bool

Si TextEdit debe obtener el foco activo al pulsar con el ratón. Por defecto se establece en true.

baseUrl : url

Esta propiedad especifica una URL base que se utiliza para resolver URLs relativas dentro del texto.

El valor por defecto es la url del archivo QML que instancia el elemento TextEdit.

bottomPadding : real

leftPadding : real

padding : real

rightPadding : real

topPadding : real

Estas propiedades contienen el relleno alrededor del contenido. Este espacio se reserva además de contentWidth y contentHeight.

canPaste : bool [read-only]

Devuelve true si TextEdit es escribible y el contenido del portapapeles es apto para ser pegado en TextEdit.

canRedo : bool [read-only]

Devuelve true si el TextEdit es escribible y hay undone operaciones que pueden ser rehechas.

canUndo : bool [read-only]

Devuelve true si se puede escribir en TextEdit y hay operaciones previas que se pueden deshacer.

color : color

El color del texto.

// green text using hexadecimal notation
TextEdit { color: "#00FF00" }
// steelblue text using SVG color name
TextEdit { color: "steelblue" }

contentHeight : real [read-only]

Devuelve la altura del texto, incluyendo la altura más allá de la altura que se cubre si el texto no cabe dentro de la altura establecida.

contentWidth : real [read-only]

Devuelve la anchura del texto, incluida la anchura más allá de la anchura que se cubre debido a una envoltura insuficiente si wrapMode está configurado.

cursorDelegate : Component

El delegado para el cursor en TextEdit.

Si establece un cursorDelegate para un TextEdit, este delegado se utilizará para dibujar el cursor en lugar del cursor estándar. Se creará una instancia del delegado que será gestionada por la edición de texto cuando se necesite un cursor, y las propiedades x e y de la instancia del delegado se establecerán de forma que se sitúen un píxel antes de la parte superior izquierda del carácter actual.

Tenga en cuenta que el elemento raíz del componente delegado debe ser un elemento derivado de QQuickItem o QQuickItem.

cursorPosition : int

La posición del cursor en TextEdit. El cursor se sitúa entre caracteres.

Nota: Los caracteres en este caso se refieren a la cadena de objetos QChar, por lo tanto caracteres Unicode de 16 bits, y la posición se considera un índice dentro de esta cadena. Esto no corresponde necesariamente a grafemas individuales del sistema de escritura, ya que un mismo grafema puede estar representado por varios caracteres Unicode, como en el caso de los pares sustitutos, las ligaduras lingüísticas o los diacríticos.

cursorRectangle : rectangle [read-only]

El rectángulo donde se muestra el cursor de texto estándar dentro de la edición de texto. Sólo lectura.

La posición y la altura de un cursorDelegate personalizado se actualizan para seguir el cursorRectangle automáticamente cuando cambia. La anchura del delegado no se ve afectada por los cambios en el rectángulo del cursor.

cursorSelection : QtQuick::TextSelection [read-only, preliminary]

Esta propiedad está en desarrollo y está sujeta a cambios.

Esta propiedad es un objeto que proporciona propiedades del texto actualmente seleccionado, si lo hay, junto al cursor de texto.

Esta propiedad se introdujo en Qt 6.7.

Véase también selectedText, selectionStart, y selectionEnd.

cursorVisible : bool

Si es true la edición de texto muestra un cursor.

Esta propiedad se activa y desactiva cuando la edición de texto obtiene el foco activo, pero también puede ser activada directamente (útil, por ejemplo, si un KeyProxy puede reenviarle teclas).

effectiveHorizontalAlignment : enumeration [read-only]

horizontalAlignment : enumeration

verticalAlignment : enumeration

Establece la alineación horizontal y vertical del texto dentro de la anchura y altura del elemento TextEdit. Por defecto, la alineación del texto sigue la alineación natural del texto, por ejemplo, el texto que se lee de izquierda a derecha se alineará a la izquierda.

Los valores válidos para horizontalAlignment son:

ConstanteDescripción
TextEdit.AlignLeftalineación a la izquierda con bordes rasgados a la derecha (por defecto)
TextEdit.AlignRightalinear cada línea a la derecha con bordes irregulares a la izquierda
TextEdit.AlignHCenteralinear cada línea al centro
TextEdit.AlignJustifyalinear cada línea tanto a la derecha como a la izquierda, separando las palabras según sea necesario

Los valores válidos para verticalAlignment son:

ConstanteDescripción
TextEdit.AlignTopempezar en la parte superior del elemento (por defecto)
TextEdit.AlignBottomalinear la última línea abajo y las demás líneas arriba
TextEdit.AlignVCenteralinear el centro verticalmente

Cuando se utiliza la propiedad adjunta LayoutMirroring::enabled para reflejar los diseños de la aplicación, la alineación horizontal del texto también se reflejará. Sin embargo, la propiedad horizontalAlignment permanecerá inalterada. Para consultar la alineación horizontal efectiva de TextEdit, utilice la propiedad de sólo lectura effectiveHorizontalAlignment.

font.bold : bool

Establece si el peso de la fuente es negrita.

font.capitalization : enumeration

Establece las mayúsculas para el texto.

ConstanteDescripción
Font.MixedCaseno se aplica ningún cambio de mayúsculas
Font.AllUppercasealtera el texto para que se muestre en mayúsculas
Font.AllLowercasealtera el texto para que se muestre en minúsculas
Font.SmallCapsmodifica el texto para que aparezca en minúsculas
Font.Capitalizemodifica el texto para que el primer carácter de cada palabra sea mayúscula
TextEdit { text: "Hello"; font.capitalization: Font.AllLowercase }

font.contextFontMerging : bool [since 6.8]

Si la fuente seleccionada no contiene un carácter determinado, Qt elige automáticamente una fuente alternativa de aspecto similar que contenga el carácter. Por defecto, esto se hace carácter por carácter.

Esto significa que en ciertos casos poco comunes, muchas fuentes diferentes pueden ser usadas para representar una cadena de texto incluso si está en el mismo script. Si se establece contextFontMerging a true, se intentará encontrar la fuente alternativa que coincida con el mayor subconjunto de la cadena de entrada. Esto será más costoso para las cadenas en las que falten glifos, pero puede dar resultados más consistentes. Por defecto, contextFontMerging es false.

Esta propiedad se introdujo en Qt 6.8.

Véase también QFont::StyleStrategy.

font.family : string

Establece el nombre de la familia de la fuente.

El nombre de la familia no distingue entre mayúsculas y minúsculas y puede incluir opcionalmente un nombre de fundición, por ejemplo, "Helvetica [Cronyx]". Si la familia está disponible en más de una fundición y no se especifica la fundición, se elige una fundición arbitraria. Si la familia no está disponible, se establecerá una familia utilizando el algoritmo de correspondencia de fuentes.

font.features : object [since 6.6]

Aplica valores enteros a características OpenType específicas al dar forma al texto basándose en el contenido en features. Esto proporciona un acceso avanzado al proceso de modelado de fuentes y puede utilizarse para admitir características de fuentes que, de otro modo, no estarían cubiertas por la API.

Las características de la fuente se representan mediante un mapa de etiquetas de cuatro letras a valores enteros. Este valor entero pasado junto con la etiqueta representa en la mayoría de los casos un valor booleano: Un valor cero significa que la característica está desactivada, y un valor distinto de cero significa que está activada. Sin embargo, en el caso de determinadas funciones de fuentes, puede tener otras interpretaciones. Por ejemplo, cuando se aplica a la característica salt, el valor es un índice que especifica la alternativa estilística a utilizar.

Por ejemplo, la característica de fuente frac convertirá las fracciones diagonales separadas con una barra (como 1/2) con una representación diferente. Normalmente, esto implicará la conversión de la fracción completa en un único carácter de ancho (como ½).

Si una fuente soporta la característica frac, entonces puede activarse en el modelador como en el siguiente código:

Text {
    text: "One divided by two is 1/2"
    font.family: "MyFractionFont"
    font.features: { "frac": 1 }
}

Se pueden asignar valores a múltiples características en la misma asignación. Por ejemplo, si desea desactivar también el kerning para la fuente, puede desactivarlo explícitamente de la siguiente manera:

Text {
    text: "One divided by two is 1/2"
    font.family: "MyFractionFont"
    font.features: { "frac": 1, "kern": 0 }
}

También puede reunir las propiedades de la fuente en un objeto:

Text {
    text: "One divided by two is 1/2"
    font: {
        family: "MyFractionFont"
        features: { "frac": 1, "kern": 0 }
    }
}

Nota: Por defecto, Qt habilitará y deshabilitará ciertas características de la fuente basándose en otras propiedades de la fuente. En particular, la característica kern se habilitará/deshabilitará dependiendo de la propiedad font.kerning de la QFont. Además, todas las características de ligadura (liga, clig, dlig, hlig) se deshabilitarán si se establece una font.letterSpacing, pero sólo para sistemas de escritura donde el uso de ligaduras es cosmético. Para los sistemas de escritura en los que se requieren ligaduras, las características permanecerán en su estado predeterminado. Los valores establecidos mediante font.features anularán el comportamiento predeterminado. Si, por ejemplo, "kern" se establece en 1, el interletraje estará siempre activado, independientemente de si la propiedad font.kerning se establece en false. Del mismo modo, si se establece en 0, siempre estará desactivado.

Esta propiedad se introdujo en Qt 6.6.

Véase también QFont::setFeature().

font.hintingPreference : enumeration

Establece la sugerencia preferida para el texto. Se trata de una sugerencia al sistema de renderizado de texto subyacente para que utilice un determinado nivel de sugerencia, y tiene soporte variable entre plataformas. Consulte la tabla en la documentación de QFont::HintingPreference para más detalles.

Nota: Esta propiedad sólo tiene efecto cuando se utiliza junto con el tipo de renderizado TextEdit.NativeRendering.

ConstanteDescripción
Font.PreferDefaultHintingUtiliza el nivel de sugerencia predeterminado para la plataforma de destino.
Font.PreferNoHintingSi es posible, renderice el texto sin insinuar los contornos de los glifos. El diseño del texto será tipográficamente preciso, utilizando las mismas métricas que se utilizan, por ejemplo, al imprimir.
Font.PreferVerticalHintingSi es posible, represente el texto sin insinuación horizontal, pero alinee los glifos con la cuadrícula de píxeles en dirección vertical. El texto aparecerá más nítido en las pantallas en las que la densidad sea demasiado baja para ofrecer una representación precisa de los glifos. Pero como las métricas horizontales de los glifos no están insinuadas, el diseño del texto será escalable a dispositivos de mayor densidad (como impresoras) sin afectar a detalles como los saltos de línea.
Font.PreferFullHintingSi es posible, represente el texto con insinuación tanto en horizontal como en vertical. El texto se modificará para optimizar la legibilidad en el dispositivo de destino, pero como las métricas dependerán del tamaño de destino del texto, las posiciones de los glifos, los saltos de línea y otros detalles tipográficos no se escalarán, lo que significa que un diseño de texto puede tener un aspecto diferente en dispositivos con distintas densidades de píxeles.
TextEdit { text: "Hello"; renderType: TextEdit.NativeRendering; font.hintingPreference: Font.PreferVerticalHinting }

font.italic : bool

Establece si la fuente tiene un estilo cursiva.

font.kerning : bool

Activa o desactiva la función kerning OpenType al dar forma al texto. Deshabilitarla puede mejorar el rendimiento al crear o modificar el texto, a expensas de algunas características estéticas. El valor por defecto es true.

TextEdit { text: "OATS FLAVOUR WAY"; kerning: font.false }

font.letterSpacing : real

Establece el espaciado entre letras de la fuente.

El espaciado entre letras cambia el espaciado por defecto entre las letras individuales de la fuente. Un valor positivo aumenta el espaciado entre letras en los píxeles correspondientes; un valor negativo lo reduce.

font.pixelSize : int

Establece el tamaño de la fuente en píxeles.

El uso de esta función hace que la fuente dependa del dispositivo. Utilice TextEdit::font.pointSize para establecer el tamaño de la fuente de forma independiente del dispositivo.

font.pointSize : real

Establece el tamaño de la fuente en puntos. El tamaño en puntos debe ser mayor que cero.

font.preferShaping : bool

A veces, una fuente aplica reglas complejas a un conjunto de caracteres para mostrarlos correctamente. En algunos sistemas de escritura, como las escrituras brahmánicas, esto es necesario para que el texto sea legible, pero en la escritura latina, por ejemplo, es una característica meramente cosmética. Si se establece la propiedad preferShaping a false, se desactivarán todas estas características cuando no sean necesarias, lo que mejorará el rendimiento en la mayoría de los casos.

El valor por defecto es true.

TextEdit { text: "Some text"; font.preferShaping: false }

font.preferTypoLineMetrics : bool [since 6.8]

conjuntos competidores de las métricas de línea vertical que proporcionan las ascent, descent y leading de la fuente. A menudo se denominan métricas win (Windows) y métricas typo (tipográficas). Aunque la especificación recomienda utilizar la métrica typo para el interlineado, muchas aplicaciones prefieren la métrica win a menos que se establezca el indicador USE_TYPO_METRICS en el campo fsSelection de la fuente. Por razones de retrocompatibilidad, éste es también el caso de las aplicaciones Qt. Esto no es un problema para las fuentes que establecen la bandera USE_TYPO_METRICS para indicar que las métricas typo son válidas, ni para las fuentes en las que las métricas win y typo coinciden. Sin embargo, en algunos tipos de letra, la métrica win puede ser mayor que el interlineado preferible y el indicador USE_TYPO_METRICS puede no estar activado por error. Para estos tipos de letra, la opción font.preferTypoLineMetrics puede dar mejores resultados.

Por defecto, preferTypoLineMetrics es false.

Esta propiedad se introdujo en Qt 6.8.

Véase también QFont::StyleStrategy.

font.strikeout : bool

Establece si la fuente tiene un estilo de tachado.

font.styleName : string

Establece el nombre del estilo de la fuente.

El nombre del estilo no distingue entre mayúsculas y minúsculas. Si se establece, la fuente se comparará con el nombre de estilo en lugar de con las propiedades de fuente font.weight, font.bold y font.italic.

font.underline : bool

Establece si se subraya el texto.

font.variableAxes : object [since 6.7]

Aplica valores de coma flotante a ejes variables en fuentes variables.

Las fuentes variables permiten almacenar múltiples variaciones (con diferentes pesos, anchos o estilos) en el mismo archivo de fuente. Las variaciones se dan como valores de coma flotante para un conjunto predefinido de parámetros, llamados "ejes variables". El diseñador de fuentes suele asignar nombres a las instancias específicas y, en Qt, éstas pueden seleccionarse mediante setStyleName() al igual que las subfamilias tradicionales.

En algunos casos, también es útil proporcionar valores arbitrarios para los diferentes ejes. Por ejemplo, si una fuente tiene una subfamilia Regular y otra Negrita, es posible que desee un peso intermedio. Puede solicitarlo manualmente indicando un valor personalizado para el eje "wght" de la fuente.

Text {
    text: "Foobar"
    font.family: "MyVariableFont"
    font.variableAxes: { "wght": (Font.Normal + Font.Bold) / 2.0 }
}

Si el eje "wght" está soportado por la fuente y el valor dado está dentro de su rango definido, se proporcionará una fuente correspondiente al peso 550.0.

Hay algunos ejes estándar que muchas fuentes proporcionan, como "wght" (peso), "wdth" (anchura), "ital" (cursiva) y "opsz" (tamaño óptico). Cada uno de ellos tiene rangos independientes definidos en la propia fuente. Por ejemplo, "wght" puede ir de 100 a 900 (deQFont::Thin a QFont::Black), mientras que "ital" puede ir de 0 a 1 (de no cursiva a totalmente cursiva).

Una fuente también puede optar por definir ejes personalizados; la única limitación es que el nombre tiene que cumplir los requisitos para un QFont::Tag (secuencia de cuatro caracteres latinos-1.)

Por defecto, no se define ningún eje variable.

Nota: En Windows, los ejes variables no están soportados si se utiliza el backend opcional de fuentes GDI.

Esta propiedad se introdujo en Qt 6.7.

Véase también QFont::setVariableAxis().

font.weight : int

El peso solicitado de la fuente. El peso solicitado debe ser un número entero entre 1 y 1000, o uno de los valores predefinidos:

ConstanteDescripción
Font.Thin100
Font.ExtraLight200
Font.Light300
Font.Normal400 (por defecto)
Font.Medium500
Font.DemiBold600
Font.Bold700
Font.ExtraBold800
Font.Black900
TextEdit { text: "Hello"; font.weight: Font.DemiBold }

font.wordSpacing : real

Establece el espaciado entre palabras de la fuente.

El espaciado entre palabras cambia el espaciado predeterminado entre palabras individuales. Un valor positivo aumenta el espaciado entre palabras en la cantidad de píxeles correspondiente, mientras que un valor negativo reduce el espaciado entre palabras.

Esta propiedad contiene la cadena de enlace cuando el usuario pasa el ratón sobre un enlace incrustado en el texto. El enlace debe estar en formato de texto enriquecido o HTML y la cadena de enlace proporciona acceso al enlace concreto.

Véase también linkHovered y linkAt().

inputMethodComposing : bool [read-only]

Esta propiedad mantiene si el TextEdit tiene entrada de texto parcial de un método de entrada.

Mientras se está componiendo un método de entrada puede depender de eventos de ratón o tecla de TextEdit para editar o confirmar el texto parcial. Esta propiedad puede ser utilizada para determinar cuando desactivar los manejadores de eventos que puedan interferir con el correcto funcionamiento de un método de entrada.

inputMethodHints : enumeration

Proporciona sugerencias al método de entrada sobre el contenido esperado de la edición de texto y cómo debería funcionar.

El valor es una combinación de bit a bit de flags o Qt.ImhNone si no hay ninguna sugerencia.

Las banderas que alteran el comportamiento son:

ConstanteDescripción
Qt.ImhHiddenTextLos caracteres deben ocultarse, como se usa típicamente cuando se introducen contraseñas.
Qt.ImhSensitiveDataEl texto tecleado no debería ser almacenado por el método de entrada activo en ningún almacenamiento persistente como el diccionario predictivo del usuario.
Qt.ImhNoAutoUppercaseEl método de entrada no debe intentar cambiar automáticamente a mayúsculas cuando termina una frase.
Qt.ImhPreferNumbersSe prefieren los números (pero no son obligatorios).
Qt.ImhPreferUppercaseSe prefieren las mayúsculas (pero no son obligatorias).
Qt.ImhPreferLowercaseSe prefieren las minúsculas (pero no son obligatorias).
Qt.ImhNoPredictiveTextNo utilice el texto predictivo (es decir, la búsqueda en el diccionario) mientras escribe.
Qt.ImhDateEl editor de texto funciona como un campo de fecha.
Qt.ImhTimeEl editor de texto funciona como un campo de hora.

Las banderas que restringen la entrada (banderas exclusivas) son:

ConstanteDescripción
Qt.ImhDigitsOnlySólo se permiten dígitos.
Qt.ImhFormattedNumbersOnlySólo se permite la introducción de números. Esto incluye el punto decimal y el signo menos.
Qt.ImhUppercaseOnlySólo se permite la introducción de letras mayúsculas.
Qt.ImhLowercaseOnlySólo se permite la introducción de letras minúsculas.
Qt.ImhDialableCharactersOnlySólo se permiten caracteres adecuados para la marcación telefónica.
Qt.ImhEmailCharactersOnlySólo se permiten caracteres adecuados para direcciones de correo electrónico.
Qt.ImhUrlCharactersOnlySólo se permiten caracteres adecuados para URL.

Máscaras:

ConstanteDescripción
Qt.ImhExclusiveInputMaskEsta máscara devuelve un valor distinto de cero si se utiliza alguna de las banderas exclusivas.

length : int [read-only]

Devuelve el número total de caracteres de texto plano en el elemento TextEdit.

Como este número no incluye ninguna marca de formato, puede no coincidir con la longitud de la cadena devuelta por la propiedad text.

Esta propiedad puede ser más rápida que consultar la longitud de la propiedad text, ya que no requiere copiar ni convertir los datos de cadena internos de TextEdit.

lineCount : int [read-only]

Devuelve el número total de líneas del elemento TextEdit.

mouseSelectionMode : enumeration

Especifica cómo debe seleccionarse el texto con el ratón.

ConstanteDescripción
TextEdit.SelectCharacters(por defecto) La selección se actualiza con caracteres individuales.
TextEdit.SelectWordsLa selección se actualiza con palabras completas.

Esta propiedad sólo se aplica cuando selectByMouse es verdadero.

overwriteMode : bool

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).

persistentSelection : bool

Si TextEdit debe mantener la selección visible cuando pierda el foco activo en otro elemento de la escena. Por defecto se establece en false.

preeditText : string [read-only]

Esta propiedad contiene texto parcial de un método de entrada.

Para desactivar el texto parcial resultante de las predicciones, active el indicador Qt.ImhNoPredictiveText en inputMethodHints.

Véase también inputMethodHints.

readOnly : bool

Si el usuario puede interactuar con el elemento TextEdit. Si esta propiedad está establecida a true el texto no puede ser editado por la interacción del usuario.

Por defecto esta propiedad es false.

renderType : enumeration

Anula el tipo de renderizado por defecto de este componente.

Los tipos de representación soportados son:

ConstanteDescripción
TextEdit.QtRenderingEl texto se renderiza utilizando un campo de distancia escalable para cada glifo.
TextEdit.NativeRenderingEl texto se renderiza utilizando una técnica específica de la plataforma.
TextEdit.CurveRenderingEl texto se renderiza utilizando un rasterizador de curvas que se ejecuta directamente en el hardware gráfico. (Introducido en Qt 6.7.0.)

Seleccione TextEdit.NativeRendering si prefiere que el texto tenga un aspecto nativo en la plataforma de destino y no necesita funciones avanzadas como la transformación del texto. El uso de tales características en combinación con el tipo de renderizado NativeRendering dará resultados pobres y a veces pixelados.

Tanto TextEdit.QtRendering como TextEdit.CurveRendering son técnicas aceleradas por hardware. QtRendering es la más rápida de las dos, pero utiliza más memoria y mostrará artefactos de renderizado en tamaños grandes. CurveRendering debe considerarse como una alternativa en los casos en los que QtRendering no ofrezca buenos resultados visuales o en los que reducir el consumo de memoria gráfica sea una prioridad.

El tipo de renderizado por defecto viene determinado por QQuickWindow::textRenderType().

selectByKeyboard : bool

Por defecto es true cuando el editor es editable, y false cuando es de sólo lectura.

Si es true, el usuario puede utilizar el teclado para seleccionar texto incluso si el editor es de sólo lectura. Si es false, el usuario no puede utilizar el teclado para seleccionar texto aunque el editor sea editable.

Véase también readOnly.

selectByMouse : bool

Por defecto true desde Qt 6.4.

Si true, el usuario puede utilizar el ratón para seleccionar texto de la forma habitual.

Nota: En versiones anteriores a la 6.4, el valor por defecto era false; pero si se activaba esta propiedad, también se podía seleccionar texto en una pantalla táctil arrastrando el dedo por ella. Esto interfería con el parpadeo cuando se utilizaba TextEdit dentro de un Flickable. Sin embargo, Qt ha soportado los manejadores de selección de texto en plataformas móviles, y en plataformas embebidas usando Qt Virtual Keyboard, desde la versión 5.7, vía QInputMethod. La mayoría de los usuarios se sorprenderían si al arrastrar con el dedo se seleccionara texto en lugar de mover el Flickable padre. Por lo tanto, selectByMouse ahora significa realmente lo que dice: si true, puedes seleccionar texto arrastrando sólo con el ratón, mientras que se espera que la plataforma proporcione tiradores de selección en las pantallas táctiles. Si este cambio no se adapta a su aplicación, puede establecer selectByMouse en false, o importar una versión anterior de la API (por ejemplo import QtQuick 6.3) para volver al comportamiento anterior. La opción de revertir el comportamiento cambiando la versión de importación se eliminará en una versión posterior de Qt.

selectedText : string [read-only]

Esta propiedad de sólo lectura proporciona el texto actualmente seleccionado en la edición de texto.

Es equivalente al siguiente fragmento, pero es más rápido y fácil de usar.

//myTextEdit is the id of the TextEdit
myTextEdit.text.toString().substring(myTextEdit.selectionStart,
        myTextEdit.selectionEnd);

selectedTextColor : color

El color del texto seleccionado, utilizado en las selecciones.

selectionColor : color

El color de resaltado del texto, utilizado detrás de las selecciones.

selectionEnd : int [read-only]

La posición del cursor después del último carácter de la selección actual.

Esta propiedad es de sólo lectura. Para cambiar la selección, utilice select(inicio,fin), selectAll(), o selectWord().

Véase también selectionStart, cursorPosition, y selectedText.

selectionStart : int [read-only]

La posición del cursor antes del primer carácter de la selección actual.

Esta propiedad es de sólo lectura. Para cambiar la selección, utilice select(inicio,fin), selectAll(), o selectWord().

Véase también selectionEnd, cursorPosition, y selectedText.

tabStopDistance : real

La distancia por defecto, en unidades de dispositivo, entre los topes de tabulación.

Véase también QTextOption::setTabStopDistance().

text : string

El texto a mostrar. Si el formato del texto es Autotexto, la edición de texto determinará automáticamente si el texto debe ser tratado como texto enriquecido. Esta determinación se realiza mediante Qt::mightBeRichText(). Sin embargo, la detección de Markdown no es automática.

La propiedad text es adecuada sobre todo para establecer el contenido inicial y gestionar las modificaciones de un contenido de texto relativamente pequeño. Los métodos append(), insert() y remove() proporcionan un control más preciso y un rendimiento notablemente mejor para modificar contenidos de texto enriquecido especialmente grandes.

Tenga en cuenta que algunos teclados utilizan una función predictiva. En este caso, el texto compuesto por el método de entrada no forma parte de esta propiedad. La parte del texto relacionada con las predicciones se subraya y se almacena en la propiedad preeditText.

Si ha utilizado TextDocument::source para cargar texto, puede recuperar el texto cargado desde esta propiedad. En ese caso, puede cambiar textFormat para hacer conversiones de formato que cambiarán el valor de la propiedad text. Por ejemplo, si textFormat es RichText o AutoText y cargas un archivo HTML, y después estableces textFormat a MarkdownText, la propiedad text contendrá la conversión de HTML a Markdown.

Véase también clear(), preeditText, y textFormat.

textDocument : TextDocument [read-only]

Devuelve el QQuickTextDocument de este TextEdit. Desde Qt 6.7, tiene funciones para cargar y guardar archivos. También se puede utilizar en C++ como medio para acceder a la instancia QTextDocument subyacente, por ejemplo para instalar un QSyntaxHighlighter.

Véase también QQuickTextDocument.

textFormat : enumeration

La forma en que debe mostrarse la propiedad text.

Los formatos de texto soportados son:

ConstanteDescripción
TextEdit.PlainText(por defecto) todas las etiquetas de estilo se tratan como texto sin formato
TextEdit.AutoTextdetectado mediante la heurística Qt::mightBeRichText() o el formato de archivo de TextDocument::source
TextEdit.RichTextun subconjunto de HTML 4
TextEdit.MarkdownTextCommonMark más las extensiones de GitHub para tablas y listas de tareas (desde 5.14)

El valor predeterminado es TextEdit.PlainText. Si el formato de texto se establece en TextEdit.AutoText, la edición de texto determinará automáticamente si el texto debe tratarse como texto enriquecido. Si la propiedad text está establecida, esta determinación se realiza utilizando Qt::mightBeRichText(), que puede detectar la presencia de una etiqueta HTML en la primera línea de texto, pero no puede distinguir Markdown de texto plano. Si la propiedad TextDocument::source está establecida, esta determinación se realiza a partir de mime type of the file.

Column {
    TextEdit {
        font.pointSize: 24
        textFormat: TextEdit.AutoText
        text: "<b>Hello</b> <i>World!</i>"
    }
    TextEdit {
        font.pointSize: 24
        textFormat: TextEdit.RichText
        text: "<b>Hello</b> <i>World!</i>"
    }
    TextEdit {
        font.pointSize: 24
        textFormat: TextEdit.PlainText
        text: "<b>Hello</b> <i>World!</i>"
    }
    TextEdit {
        font.pointSize: 24
        textFormat: TextEdit.MarkdownText
        text: "**Hello** *World!*"
    }
}

Con TextEdit.MarkdownText, las casillas de verificación resultantes del uso de la extensión de casillas de verificación de GitHub se pueden marcar de forma interactiva.

Si la propiedad TextDocument::source está establecida, cambiar la propiedad textFormat después de la carga tiene el efecto de convertir del formato detectado al formato solicitado. Por ejemplo, puede convertir entre HTML y Markdown. Sin embargo, si se carga cualquiera de esos formatos "ricos" y luego se establece textFormat en PlainText, TextEdit mostrará el marcado en bruto. Por lo tanto, los enlaces adecuados (por ejemplo, a un control comprobable) pueden permitir al usuario alternar entre la edición "sin formato" y la edición WYSIWYG.

Nota: No se admite la escritura interactiva de formato de marcado o markdown en modo WYSIWYG, pero se puede cambiar a PlainText, realizar cambios y, a continuación, volver a textFormat.

Nota: Con Text.MarkdownText, y con el subconjunto de HTML soportado, algunos elementos decorativos no se renderizan como lo harían en un navegador web:

  • los bloques de código utilizan default monospace font pero sin un cuadro de resaltado alrededor
  • las comillas de bloque están sangradas, pero no hay una línea vertical al lado de la comilla

textMargin : real

El margen, en píxeles, alrededor del texto en TextEdit.

wrapMode : enumeration

Establezca esta propiedad para ajustar el texto a la anchura del elemento TextEdit. El texto sólo se ajustará si se ha establecido una anchura explícita.

ConstanteDescripción
TextEdit.NoWrap(por defecto) no se ajustará el texto. Si el texto no contiene suficientes nuevas líneas, implicitWidth excederá el ancho establecido.
TextEdit.WordWrapEl ajuste se realiza sólo en los límites de palabra. Si una palabra es demasiado larga, implicitWidth excederá el ancho establecido.
TextEdit.WrapAnywhereel ajuste se realiza en cualquier punto de la línea, incluso si se produce en medio de una palabra.
TextEdit.WrapSi es posible, el ajuste se realiza en el límite de la palabra; de lo contrario, se realizará en el punto apropiado de la línea, incluso en medio de una palabra.

El valor predeterminado es TextEdit.NoWrap. Si establece una anchura, considere el uso de TextEdit.Wrap.

Documentación de señales

editingFinished()

Esta señal se emite cuando la edición de texto pierde el foco.

Nota: El manejador correspondiente es onEditingFinished.

linkActivated(string link)

Esta señal se emite cuando el usuario pulsa sobre un enlace incrustado en el texto. El enlace debe estar en formato de texto enriquecido o HTML y la cadena link proporciona acceso al enlace concreto.

Nota: El manejador correspondiente es onLinkActivated.

linkHovered(string link)

Esta señal se emite cuando el usuario pasa el ratón sobre un enlace incrustado en el texto. El enlace debe estar en formato de texto enriquecido o HTML y la cadena link proporciona acceso al enlace concreto.

Nota: El manejador correspondiente es onLinkHovered.

Véase también hoveredLink y linkAt().

[since 6.9] textEdited()

Esta señal se emite cada vez que se edita el texto. A diferencia de textChanged(), esta señal no se emite cuando el texto se modifica mediante programación, por ejemplo, cambiando el valor de la propiedad text o llamando a clear().

Nota: El manejador correspondiente es onTextEdited.

Esta señal se introdujo en Qt 6.9.

Documentación del método

void append(string text)

Añade un nuevo párrafo con text al final de TextEdit.

Para añadir sin insertar un nuevo párrafo, llame a myTextEdit.insert(myTextEdit.length, text).

void clear()

Borra el contenido de la edición de texto y restablece la entrada parcial de texto de un método de entrada.

Utilice este método en lugar de establecer la propiedad text a una cadena vacía.

Véase también QInputMethod::reset().

void copy()

Copia el texto actualmente seleccionado en el portapapeles del sistema.

void cut()

Mueve el texto actualmente seleccionado al portapapeles del sistema.

void deselect()

Elimina la selección de texto activa.

string getFormattedText(int start, int end)

Devuelve la sección de texto que se encuentra entre las posiciones start y end.

El texto devuelto se formateará según la propiedad textFormat.

string getText(int start, int end)

Devuelve la sección de texto que se encuentra entre las posiciones start y end.

El texto devuelto no incluye ningún formato de texto enriquecido.

void insert(int position, string text)

Inserta text en TextEdit en position.

bool isRightToLeft(int start, int end)

Devuelve true si la dirección natural de lectura del texto del editor que se encuentra entre las posiciones start y end es de derecha a izquierda.

string linkAt(real x, real y)

Devuelve la cadena del enlace en el punto x, y en coordenadas de contenido, o una cadena vacía si no existe ningún enlace en ese punto.

Véase también hoveredLink.

void moveCursorSelection(int position, SelectionMode mode)

Mueve el cursor a position y actualiza la selección según el parámetro opcional mode. (Para mover sólo el cursor, establezca la propiedad cursorPosition ).

Cuando se llama a este método, adicionalmente establece selectionStart o selectionEnd (el que estuviera en la posición anterior del cursor) en la posición especificada. Esto le permite extender y contraer fácilmente el rango de texto seleccionado.

El modo de selección especifica si la selección se actualiza por carácter o por palabra. Si no se especifica, el modo de selección será por defecto TextEdit.SelectCharacters.

ConstanteDescripción
TextEdit.SelectCharactersPone selectionStart o selectionEnd (el que estuviera en la posición anterior del cursor) en la posición especificada.
TextEdit.SelectWordsEstablece selectionStart y selectionEnd para incluir todas las palabras entre la posición especificada y la posición anterior del cursor. Se incluyen las palabras que se encuentren parcialmente en el intervalo.

Por ejemplo, tome esta secuencia de llamadas:

cursorPosition = 5
moveCursorSelection(9, TextEdit.SelectCharacters)
moveCursorSelection(7, TextEdit.SelectCharacters)

Esto mueve el cursor a la posición 5, extiende el extremo de selección de 5 a 9 y luego retrae el extremo de selección de 9 a 7, dejando el texto de la posición 5 a 7 seleccionado (los caracteres 6 y 7).

La misma secuencia con TextEdit.SelectWords extenderá el inicio de la selección a un límite de palabra antes o en la posición 5 y extenderá el final de la selección a un límite de palabra en o después de la posición 9.

void paste()

Sustituye el texto actualmente seleccionado por el contenido del portapapeles del sistema.

int positionAt(int x, int y)

Devuelve la posición del texto más cercana a la posición del píxel (x, y).

La posición 0 es antes del primer carácter, la posición 1 es después del primer carácter pero antes del segundo, y así sucesivamente hasta la posición text.length, que es después de todos los caracteres.

rectangle positionToRectangle(position)

Devuelve el rectángulo en la dirección position dada en el texto. Las propiedades x, y y altura corresponden al cursor que describiría esa posición.

void redo()

Rehace la última operación si rehacer es available.

string remove(int start, int end)

Elimina la sección de texto que se encuentra entre las posiciones start y end de TextEdit.

void select(int start, int end)

Hace que se seleccione el texto de start a end.

Si el inicio o el final están fuera del rango, la selección no se modifica.

Después de llamar a esto, selectionStart se convertirá en el menor y selectionEnd se convertirá en el mayor (independientemente del orden pasado a este método).

Véase también selectionStart y selectionEnd.

void selectAll()

Hace que se seleccione todo el texto.

void selectWord()

Hace que se seleccione la palabra más cercana a la posición actual del cursor.

void undo()

Deshace la última operación si deshacer es available. Deselecciona cualquier selección actual y actualiza el inicio de la selección a la posición actual del cursor.

© 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.