Yes, code works, if we do event.accept()

Phil, is it possible to do such hack inside QScintilla?


На 07.02.2011 10:52, Phil Thompson напісаў(ла):
On Sun, 6 Feb 2011 12:50:44 -0600, Steve Borho<[email protected]>  wrote:
On Sun, Feb 6, 2011 at 9:22 AM, Phil Thompson
<[email protected]>  wrote:
On Tue, 25 Jan 2011 16:19:49 +0200, Андрей<[email protected]>  wrote:
Hi

Scintilla uses Shift+Tab for unindent by default. But, if I press it
in
Qt4/QScintilla application, focus jumps to another widget, because Qt
uses
Shift+Tab for move focus.

I checked qt4 example - Shift+Tab doesn't work here, but works in the
GTK
scite.

How to resolve this situation?
It will be fixed in tonight's snapshot.

You can also apply the fix in your application by reimplementing
keyPressEvent(), check to see if the key pressed is Key_Backtab and, if
so,
update the event so that it appears to be a Key_Tab with the shift
modifier, then call the original keyPressEvent().
I've done this:

     def keyPressEvent(self, event):
         if event.key() == Qt.Key_Backtab:
             event.ignore()
             newev = QKeyEvent(event.type(), Qt.Key_Tab,
Qt.ShiftModifier)
             super(MessageEntry, self).keyPressEvent(newev)
         else:
             super(MessageEntry, self).keyPressEvent(event)

And it does do the back shift, but then the qsci widget loses focus.
Is there a way to avoid that?
Call event.accept() rather than event.ignore()?

Phil
_______________________________________________
QScintilla mailing list
[email protected]
http://www.riverbankcomputing.com/mailman/listinfo/qscintilla

_______________________________________________
QScintilla mailing list
[email protected]
http://www.riverbankcomputing.com/mailman/listinfo/qscintilla

Reply via email to