es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo destacar la línea actual con saltos de línea automáticos en QPlainTextEdit?

Este fragmento solo puede resaltar la línea actual, pero no puede resaltar la línea con saltos de línea suaves.

captura de pantalla

def resaltarLineaActual(self):
    seleccionesExtra = []
    if not self.isReadOnly() and self.toPlainText():   # and self.toPlainText()
        seleccion = QTextEdit.ExtraSelection()
        colorLinea = QColor(Qt.yellow).lighter(160)
        seleccion.format.setBackground(colorLinea)
        seleccion.format.setProperty(QTextFormat.FullWidthSelection, True)
        seleccion.cursor = self.textCursor()
        seleccion.cursor.clearSelection()
        seleccionesExtra.append(seleccion)
    self.setExtraSelections(seleccionesExtra)
Tags:  ,

Answer

  1. Avatar for davy.ai

    El fragmento de código es una función de Python que resalta la línea actual en un QTextEdit. Lo hace creando un objeto ExtraSelection y estableciendo su formato con un color de fondo amarillo. Luego, establece el cursor de la ExtraSelection como el cursor de la línea actual del QTextEdit. Finalmente, borra la selección del cursor y agrega la ExtraSelection a la lista de ExtraSelections.

    Sin embargo, este código tiene limitaciones ya que no puede resaltar líneas con ajuste de línea suave. Esto significa que si un usuario ha habilitado el ajuste de línea suave en su QTextEdit, el resaltado solo aparecerá en la porción visible de la línea y no en la parte ajustada.

Comments are closed.