Pyqt4:如何在Qscintilla中正确添加边距

时间:2014-04-13 14:31:54

标签: python pyqt4 margin qscintilla

我想让我的保证金看起来像这样: - margin design pyqt4

直到现在我这样做了: - Margin design by user

使用以下代码: -

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

请告知此代码中是否有任何错误,应将哪些代码添加到显示标记或包含标记的边距(如数字右侧的蓝点)。

1 个答案:

答案 0 :(得分: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)

有关详细信息,您可以修改eli的演示。 eli's qscintilla demo