Normally, pressing the TAB key changes focus among widgets.
However, I would like to use the TAB key for other purposes
(e.g. tab completion). To gain control of the TAB key press
event, I need to subclass my widget and reimplement
QObject.event() event handler. I don't need to
re-write the entire event handler. I only need to process
TAB key press events. I will pass all other events to the default
event handler. The example below subclasses the
widget and reimplements the
event() method. Pressing the
TAB key inside this new widget prints out the text "tab pressed"
inside a second
The Events and Event Filters Trolltech QT documentation has a good explanation of how this works. My example shows how to use Python and PyQt instead of C++.