Pyqt4: как правильно добавить поля в Qscintilla

Я хочу, чтобы моя маржа выглядела так:
дизайн поля pyqt4

и я сделал так до сих пор:-
Маржинальный дизайн пользователя

со следующим кодом:-

self.setMarginType(1,Qsci.QsciScintilla.NumberMargin)
self.setMarginWidth(1,40)
self.setMarginsForegroundColor(QtGui.QColor(120, 128, 120))
self.setMarginLineNumbers(1,True)

Пожалуйста, сообщите, есть ли какая-либо ошибка в этом коде, и какой код следует добавить для отображения маркеров или полей, содержащих маркеры (например, синие точки справа от цифр).

1 ответ

Вы должны определить стиль маркера, прежде чем использовать его. вот код:

class SimplePythonEditor(QsciScintilla):
    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)

для более подробной информации, вы можете изменить демо Эли. демо-версия esc's qscintilla

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