I took a look at the Scintilla source and I see what you mean. In case
anyone finds this who needs a solution, I've gotten around this using
timers:
from PyQt4 import QtGui, QtCore, Qsci
class Editor(Qsci.QsciScintilla):
def __init__(self, parent=None):
super(Editor, self).__init__(parent)
self.textChanged.connect(self.onTextChanged)
self.changed_timer = QtCore.QTimer()
self.changed_timer.setSingleShot(True)
self.changed_timer.timeout.connect(self.changedCallback)
def onTextChanged(self):
self.changed_timer.start(10)
def changedCallback(self):
print "CHANGED"
def main():
app = QtGui.QApplication([])
widget = Editor()
widget.show()
app.exec_()
if __name__ == '__main__':
main()
On 05/30/2016 07:31 PM, Phil Thompson wrote:
On 30 May 2016, at 3:32 pm, Chris Pezley <[email protected]> wrote:
Hi,
I've noticed the following issue(?) when using qscintilla: highlight multiple
lines in the editor and press tab. The textChanged signal is emitted once for
every line that is indented. Since pressing delete with multiple lines selected
only emits one textChanged, I would assume that the multiple emits is an error.
I've included a small example to quickly test this. Just write a couple of
lines, highlight them, press tab and then see the console output.
It's a "feature" of the underlying Scintilla code.
Phil
_______________________________________________
QScintilla mailing list
[email protected]
https://www.riverbankcomputing.com/mailman/listinfo/qscintilla