Pyqt4: uso dei numeri di marcatori in Qscintilla
-
26-12-2019 - |
Domanda
Voglio sapere perché il numero di marker viene utilizzato e come da 1 a 31 numeri di marcatori sono diversi l'uno dall'altro.
E come aggiungere un simbolo di marker personalizzato come con sfumatura, mappa pix o un'immagine ecc. Ad esempio questi punti blu scintillio nell'immagine specificata. :-
Marker è definito nel seguente codice: -
CIRCLE_MARKER_NUM = 0
......
def __init__(self, parent=None):
super(SimplePythonEditor, self).__init__(parent)
self.markerDefine(QsciScintilla.Circle,self.CIRCLE_MARKER_NUM)
self.setMarkerBackgroundColor(QColor(66, 66, 255),self.CIRCLE_MARKER_NUM)
......
def on_margin_clicked(self, nmargin, nline, modifiers):
# Toggle marker for the line the margin was clicked on
if self.markersAtLine(nline) != 0:
self.markerDelete(nline, self.CIRCLE_MARKER_NUM)
else:
self.markerAdd(nline, self.CIRCLE_MARKER_NUM)
. Soluzione
La risposta alla domanda "Perché il numero di marker è usato" è semplicemente: perché no? Qualche tipo di identificatore deve essere utilizzato e un numero sembra una scelta perfettamente ragionevole.
Gli unici marcatori che hanno un significato predefinito sono i numeri da 25 a 31, che vengono utilizzati per i simboli del margine di piegatura. I numeri 0-24 non hanno un significato predefinito, quindi puoi usarli in qualsiasi modo che ti piace. E infatti, se non usi la piegatura, è possibile utilizzare tutti i 32 marcatori in qualsiasi modo che ti piace.
È possibile definire facilmente un pixmap, l'immagine o anche un carattere di testo come simbolo da utilizzare per un marker. Fai qualcosa come:
pixmap = QtGui.QPixmap('image.png')
self.markerDefine(pixmap, self.CIRCLE_MARKER_NUM)
.
E le altre varianti funzionano in modo simile.
PS:
Avresti potuto facilmente rispondere a tutti i punti (e altro) nella tua domanda consultando la documentazione eccellente disponibile:
Altri suggerimenti
Puoi trovare un'ottima spiegazione dei marcatori su questo sito Web:
https://qscintilla.com/symbol-margin/
Ecco alcuni screenshot: