my_table.installEventFilter(this)
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this);... QObject::connect(ui->tableWidget, SIGNAL(currentCellChanged(int,int,int,int)), this, SLOT(MyEventHandler())); ui->tableWidget->installEventFilter(this);}
void MainWindow::eventFilter(QObject tablica,QKeyEvent *event){ if (event->key() == Qt::Key_Right) { //Ничего не делаю - в т.ч. не перемещаюсь } else if (event->key() == Qt::Key_Left) { // ... } else{} //QTableWidget::keyPressEvent(event); и дальше событие не передаю}
C++ (Qt)// d2stringtablewidget.hclass D2StringTableWidget : public QTableWidget { ... }
bool MainWindow::eventFilter(QObject obj, QEvent *event){ // Так же нужна проверка на то, что в данный момент события фильтруются для нужного объекта // ... if (event->type() != QEvent::KeyPress) { return false; } if (event->key() == Qt::Key_Right) { //Ничего не делаю - в т.ч. не перемещаюсь return true; } else if (event->key() == Qt::Key_Left) { // ... return true; } else { // передаю событие дальше return false; }}
tablica