Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: keyPressEvent не срабатывает на "Key_Up" и "Key_Down"
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
potkin
Есть QTableView.
Надо на событие "нажата клавиша" "Up" или "Down" среагировать. Делаю так:
void RuhCinCap::keyPressEvent (QKeyEvent * e)
{
    switch(e->key())
        {
        case Qt::Key_Up:
            ShowRuhCinCap_Data();
            break;
        case Qt::Key_Down:
            ShowRuhCinCap_Data();
            break;
        }
}

Не реагирует, даже так:
void RuhCinCap::keyPressEvent (QKeyEvent * e)
{
       ShowRuhCinCap_Data();
}


А реагирует только на нажатие клавиш типа: Ентер, F1, F2, ... Esc, ... А вот, мне бы надо "реакцию" на клавиши: вверх, вниз, можно и влево и вправо ...
Может кто знает ???
crashsp
Скопировал твой код и все работает, только добавил в конец QTableView::keyPressEvent(event); но дело не в этом...
так что смотри свои код...
potkin
crashsp,
Цитата
только добавил в конец QTableView::keyPressEvent(event);

А в конец чего добавили, если не секрет ???
crashsp
Цитата(potkin @ 23.11.2010, 16:49) *
crashsp,
Цитата
только добавил в конец QTableView::keyPressEvent(event);

А в конец чего добавили, если не секрет ???


) не секрет, в конец функции void RuhCinCap::keyPressEvent (QKeyEvent * e)

ты ее реализуешь в точно в QTableView ???

potkin
crashsp,
Цитата
ты ее реализуешь в точно в QTableView ???

Нет.
Можешь свой рабочий пример выслать ???
crashsp
Тут высылать то не чего
Тебе же я как понимаю нужно ловить событие в QTableView соответственно
надо переопределить событие именно в своем классе унаследованном от QTableView
простой пример
h.файл
#include <QTableView>
class tableView:public QTableView
{
public:
    tableView(QWidget* parent = 0);
    void keyPressEvent(QKeyEvent *event);
};

cpp.файл
#include "tableview.h"
#include <QDebug>
#include <QKeyEvent>
tableView::tableView(QWidget *parent):QTableView(parent)
{

}

void tableView::keyPressEvent(QKeyEvent *event){
    switch(event->key()){
    case Qt::Key_Up:

             qDebug()<<"Press Up";
               break;

           case Qt::Key_Down:
              qDebug()<<"Press Down";
               break;

    }
    QTableView::keyPressEvent(event);
}


Вот и все ...
potkin
crashsp,
Спасибо )))
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2022 IPS, Inc.