Добрый день!
Мне надо отловить нажатие Enter внутри ячейки QTableWidget. Унаследовал от QTableWidgetItem:
class TableItem : public QObject, public QTableWidgetItem
{
Q_OBJECT
public:
TableItem(QString s);
void keyPressEvent(QKeyEvent *e);
signals:
void enter_pressed(QString);
};
TableItem::TableItem(QString s) : QTableWidgetItem(s)
{
}
void TableItem::keyPressEvent(QKeyEvent *e)
{
qDebug("[TableItem::keyPressEvent]");
if (e->key() == Qt::Key_Return) {
emit enter_pressed(text());
}
}
При создании таблицы:
TableItem* ti = new TableItem(QString("%1.%2").arg(i).arg(j));
ui->tableWidget->setItem(i, j, ti);
connect(ti, SIGNAL(enter_pressed(QString)), this, SLOT(enter_slot(QString)));
Однако, enter-slot ничего не получает, в метод TableItem::keyPressEvent не заходит.
Что я сделал не так и как исправить?