Pyqt4: использование чисел маркеров в Qscintilla

Я хочу знать, почему используется номер маркера и как от 1 до 31 номеров маркеров отличаются друг от друга. И как добавить пользовательский символ маркера, например, с градиентом, картой Pix, изображением и т. Д., Например, синими блестящими точками на данном изображении.
дизайн поля pyqt4

маркер определяется в следующем коде:-

 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/

Вот несколько скриншотов:

Другие вопросы по тегам