Seite 1 von 1

Tabulator in QTableWidget verhindern?

Verfasst: 23. Juni 2008 09:59
von rean
Hi

Ihr kennt das ja sicher:
Wenn man gerade eine Zelle in einem QTableWidget editiert und die Tab-Taste drückt wird die nächste Zelle für das Editieren aktiviert.

Ich habe die Aufgabe bekommen nach einer Möglichkeit zu suchen das zu verhindern.

Nach vielem rumprobieren hab ich folgende Lösung erarbeitet:

Code: Alles auswählen

class MyAbstractItemDelegate : public QItemDelegate 
{ 
    bool eventFilter( QObject * editor, QEvent * event ) 
    { 
        if( event->type() == QEvent::KeyPress ) 
        { 
             QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event); 
            
             if( keyEvent->key() == Qt::Key_Tab || keyEvent->key() == Qt::Key_Backtab ) return false; 
         } 
        return QAbstractItemDelegate::eventFilter( editor, event ); 
    } 
}; 

... 

table->setItemDelegate( new MyAbstractItemDelegate );
Das macht ziemlich genau das was ich will, jetzt frage ich mich aber ob es eine noch einfachere Möglichkeit gibt?


mfg

rean

Verfasst: 23. Juni 2008 10:45
von Sephral
Hätte es auch so gemacht :-)

Verfasst: 23. Juni 2008 12:28
von upsala
Aus der Doku von QAbstractItemView:
tabKeyNavigation : bool

This property holds whether item navigation with tab and backtab is enabled.

Access functions:

*bool tabKeyNavigation () const
*void setTabKeyNavigation ( bool enable )

Verfasst: 23. Juni 2008 12:59
von rean
Diese Property wirkt sich aber nur auf die nicht editierende Navigation aus.