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.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para personalizar qsci.setBraceMatching(QsciScintilla.SloppyBraceMatch) en PyQt5 QScintilla, puedes seguir los siguientes pasos:

    1. Crea una subclase de QsciLexerPython para definir un lexer personalizado que se utilizará al resaltar el código. En esta subclase, sobrescribe el método language() para que devuelva el nombre del lenguaje que identifica al lexer. Además, sobrescribe los métodos character(), tokenize() y ungetToken() para implementar la lógica de coincidencia de paréntesis.
      from PyQt5.Qsci import *
      
      class CustomLexer(QsciLexerPython):
       def __init__(self, parent=None):
           super().__init__(parent)
      
       def language(self):
           return 'Custom Python'
      
       def character(self, c):
           if c in '{}[]()':
               return self.braceMatch(c)
           else:
               return -1
      
       def tokenize(self, start, end):
           tokens = super().tokenize(start, end)
           # personalización adicional de los tokens según tu preferencia
           return tokens
      
       def ungetToken(self):
           super().ungetToken()
           # realiza personalizaciones adicionales que se deben realizar cuando se deshace un token
      
    2. Crea una instancia de tu lexer personalizado y configúrala como el lexer del widget QScintilla:
        custom_lexer = CustomLexer()
        editor.setLexer(custom_lexer)
    
    1. Personaliza la hoja de estilos del widget QScintilla para cambiar el color o estilo del resaltado de coincidencia de paréntesis. Usa el estilo bracehighlight para especificar el fondo, color de fuente y otras propiedades de estilo del paréntesis resaltado. Por ejemplo:
        editor.setStyleSheet("""
            QsciScintilla {
                bracehighlight: background-color: yellow;
            }
        """)
    

    Con estos pasos, deberías poder personalizar la característica qsci.setBraceMatching(QsciScintilla.SloppyBraceMatch) en PyQt5 QScintilla.

Comments are closed.