Russian Qt Forum
Ноябрь 23, 2024, 02:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Потомок от QTableWidgetItem и keyPressEvent  (Прочитано 2225 раз)
stranger
Гость
« : Октябрь 23, 2015, 15:33 »

Добрый день!

Мне надо отловить нажатие 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 не заходит.

Что я сделал не так и как исправить?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Октябрь 23, 2015, 16:16 »

Он приходит на viewportEvent, его и перекрывайте
Записан
stranger
Гость
« Ответ #2 : Октябрь 23, 2015, 16:31 »

Он приходит на viewportEvent, его и перекрывайте

В TableItem преопределить viewportEvent и там определять, какого типа событие пришло и т.д.?
Я правильно понял?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Октябрь 23, 2015, 17:23 »

В TableItem преопределить viewportEvent и там определять, какого типа событие пришло и т.д.?
Я правильно понял?
Да, ну или альтернатива - фильтр
Записан
stranger
Гость
« Ответ #4 : Октябрь 23, 2015, 17:29 »

Спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.095 секунд. Запросов: 23.