[QT] Der richtige Weg um den Tabulator in QTableWidget zu verhindern?



  • Hi

    QT-Benutzer kennen das 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 bin hab ich folgende Lösung erarbeitet:

    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 );
    

    Was haltet ihr davon? Gibt es vielleicht einen noch einfacheren Weg?

    gruß

    stein


Log in to reply