Pyqt4: использование чисел маркеров в Qscintilla
Я хочу знать, почему используется номер маркера и как от 1 до 31 номеров маркеров отличаются друг от друга. И как добавить пользовательский символ маркера, например, с градиентом, картой Pix, изображением и т. Д., Например, синими блестящими точками на данном изображении.
маркер определяется в следующем коде:-
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)
2 ответа
Ответ на вопрос "почему используется номер маркера" прост: почему нет? Нужно использовать какой-то идентификатор, а число кажется вполне разумным выбором.
Единственными маркерами, которые имеют предопределенное значение, являются числа от 25 до 31, которые используются для символов поля сгиба. Числа 0-24 не имеют заранее определенного значения, поэтому вы можете использовать их любым способом, который вам нравится. И на самом деле, если вы не используете фолдинг, вы можете использовать все 32 маркера так, как вам нравится.
Вы можете легко определить растровое изображение, изображение или даже текстовый символ в качестве символа для маркера. Просто сделайте что-то вроде:
pixmap = QtGui.QPixmap('image.png')
self.markerDefine(pixmap, self.CIRCLE_MARKER_NUM)
И другие варианты работают аналогичным образом.
PS:
Вы могли бы легко ответить на все вопросы (и более) в вашем вопросе, обратившись к отличной документации:
Вы можете найти очень хорошее объяснение маркеров на этом сайте:
https://qscintilla.com/symbol-margin/
Вот несколько скриншотов: