You will not be able to override this method unless you subclass QTreeWidget and override the method. However what you can do is use an event filter:
Here is an example taken from http://doc.qt.digia.com/4.4/qobject.html#installEventFilter
class KeyPressEater : public QObject
{
Q_OBJECT
...
protected:
bool eventFilter(QObject *obj, QEvent *event);
};
bool KeyPressEater::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::KeyPress) {
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
qDebug("Ate key press %d", keyEvent->key());
return true;
} else {
// standard event processing
return QObject::eventFilter(obj, event);
}
}
To install
KeyPressEater *keyPressEater = new KeyPressEater(this);
QPushButton *pushButton = new QPushButton(this);
QListView *listView = new QListView(this);
pushButton->installEventFilter(keyPressEater);
listView->installEventFilter(keyPressEater);
but in your case it would be
KeyPressEater *keyPressEater = new KeyPressEater(this);
QTreeWidget *tree= new QTreeWidget(this);
tree->installEventFilter(keyPressEater);