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
the 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 QLineEdit
widget and reimplements the event() method. Pressing the
TAB key inside this new widget prints out the text "tab pressed"
inside a second QLineEdit box.
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++.