On Mon, 22 Apr 2013 05:21:25 +0430, Lee Harr <miss...@hotmail.com> wrote: > I am trying to use QsciScintilla in a project but I am having some trouble > with the Lexer. I don't understand why this code shows the lexer at > the end of __init__ but when clicking in the margin it shows None. > > Any thoughts? > > > > import sys > from PyQt4.QtCore import SIGNAL > from PyQt4.QtGui import QApplication > from PyQt4.Qsci import QsciScintilla, QsciLexerPython > > > class SimplePythonEditor(QsciScintilla): > def __init__(self, parent=None): > super(SimplePythonEditor, self).__init__(parent) > > self.setMarginSensitivity(1, True) > self.connect(self, > SIGNAL('marginClicked(int, int, Qt::KeyboardModifiers)'), > self.on_margin_clicked) > > lexer = QsciLexerPython() > self.setLexer(lexer) > print self.lexer() > > def on_margin_clicked(self, nmargin, nline, modifiers): > print self.lexer() > > > if __name__ == "__main__": > app = QApplication(sys.argv) > editor = SimplePythonEditor() > editor.show() > app.exec_()
Because setLexer() doesn't keep a reference to the lexer. Either give the lexer a parent or keep an explicit reference. Phil _______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt