Tabulator in QTableWidget verhindern?

Alles rund um die Programmierung mit Qt
Antworten
rean
Beiträge: 2
Registriert: 22. Juni 2008 21:43

Tabulator in QTableWidget verhindern?

Beitrag 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
Sephral
Beiträge: 201
Registriert: 1. Februar 2006 09:40
Kontaktdaten:

Beitrag von Sephral »

Hätte es auch so gemacht :-)
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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 )
rean
Beiträge: 2
Registriert: 22. Juni 2008 21:43

Beitrag von rean »

Diese Property wirkt sich aber nur auf die nicht editierende Navigation aus.
Antworten