Ejemplo n.º 1
0
    def __init__(self, parent=None):
        super(panelCodigo, self).__init__(parent)
        # Definir propiedades graficas
        fuente = QFont()
        fuente.setFamily('Roboto')
        fuente.setFixedPitch(True)
        fuente.setPointSize(8)
        self.setFont(fuente)
        self.setMarginsFont(fuente)
        fuenteEditor = QFontMetrics(fuente)
        self.setMarginsFont(fuente)
        self.setMarginWidth(0, fuenteEditor.width("00000") - 15)
        self.setMarginLineNumbers(0, True)
        self.setMarginsBackgroundColor(QColor("#E0E0E0"))
        self.setMarginSensitivity(1, True)
        # Ocultar scrollbar inferior
        self.SendScintilla(QsciScintilla.SCI_SETHSCROLLBAR, 0)
        # Dimension del panel donde se edita el codigo
        self.setMinimumSize(600, 360)
        # funcion(señal) para la linea marcada
        self.marginClicked.connect(self.asignarBreak)
        # Icono que se mostrara en la linea marcada
        self.markerDefine(QsciScintilla.Rectangle, self.CONTROL_LINEA_MARCADA)
        self.setMarkerBackgroundColor(QColor("#F90000"),
                                      self.CONTROL_LINEA_MARCADA)
        # Dar valor a los caracteres especiales
        self.setBraceMatching(QsciScintilla.SloppyBraceMatch)

        # Identificar la linea donde se encuentra la ejecucion
        self.setCaretLineVisible(True)
        self.setCaretLineBackgroundColor(QColor("#00ff22"))

        # Funciones para identar las lineas del editor de codigo
        self.setAutoIndent(True)
        self.setIndentationGuides(True)
        self.setIndentationsUseTabs(True)
        self.setIndentationWidth(4)

        # Resaltado y fuente del lexer
        self.lexer = QsciLexerPascal()
        self.lexer.setDefaultFont(fuente)

        # Autocompletar haciendo uso de la API Qsci
        api = QsciAPIs(self.lexer)
        self.palabrasGramatica(api)  #flta
        api.prepare()
        # Asignar colores a las keywords de la gramatica
        self.asignarColores()  #falta
        self.setLexer(self.lexer)
        self.setAutoCompletionThreshold(1)
        self.setAutoCompletionSource(QsciScintilla.AcsAPIs)

        # Lineas marcadas
        self.controlLineasM = []
Ejemplo n.º 2
0
    def __init__(self, parent=None):
        #CONSTRUCTOR DE LA CLASE HEREDADA
        super(editor, self).__init__(parent)

        #DEFINICION DE LA FUENTE Y SUS PROPIEDADES
        font = QFont()
        #font.setFamily('Courier')
        font.setFixedPitch(True)
        font.setPointSize(10)
        self.setFont(font)
        self.setMarginsFont(font)
        self.lineas_marcadas = []

        #PROFIEDADES AVANZADAS DE LA FUENTE DEL EDITOR
        fontmetrics = QFontMetrics(font)
        self.setMarginsFont(font)
        #SE CAMBIA EL MARGEN ANCHO DE LA FUNETE
        self.setMarginWidth(0, fontmetrics.width("00000") - 15)
        #MARGEN DE LOS NUMEROS DE LINEA
        self.setMarginLineNumbers(0, True)
        #COLOR DE FONDO DE LOS NUMEROS DE LINEA
        self.setMarginsBackgroundColor(QColor("#E0E0E0"))

        self.setMarginSensitivity(1, True)

        #CREAMOS LA SEÑA PARA AGREGAR LINEA MARCADA
        self.marginClicked.connect(self.on_margin_clicked)

        #SE DEFINE EL ICONO A MOSTRAR EN LA LINEA MARCADA
        self.markerDefine(QsciScintilla.Circle, self.ARROW_MARKER_NUM)
        self.setMarkerBackgroundColor(QColor("#FF6C3B"), self.ARROW_MARKER_NUM)

        #RESALTADO DE PARENTECIS,CORCHETES Y OTROS
        self.setBraceMatching(QsciScintilla.SloppyBraceMatch)

        #RESALTADO DE LA LINEA DONDE SE ENCUENTRA EL CURSOR
        self.setCaretLineVisible(True)
        self.setCaretLineBackgroundColor(QColor("#32f24c"))

        #AUTOIDENTACION
        self.setAutoIndent(True)
        self.setIndentationGuides(True)
        self.setIndentationsUseTabs(True)
        self.setIndentationWidth(4)

        #DEFINIMOS EL RESALTADO O LEXER
        self.lexer = QsciLexerPascal()
        self.lexer.setDefaultFont(font)  #FUENTE DEL LEXER

        #API PARA EL AUTOCOMPETADO
        api = QsciAPIs(self.lexer)
        self.palabraAutocompletar(api)
        api.prepare()

        self.cambiarColores()
        self.setLexer(self.lexer)
        self.setAutoCompletionThreshold(1)
        self.setAutoCompletionSource(QsciScintilla.AcsAPIs)

        #ESCONDER SCROLLBAR HORIZONTAL
        self.SendScintilla(QsciScintilla.SCI_SETHSCROLLBAR, 0)
        #TAMAÑO MINIMO DEL EDITOR
        self.setMinimumSize(600, 360)