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