crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> keyPressEvent не срабатывает на "Key_Up" и "Key_Down"
potkin
  опции профиля:
сообщение 23.11.2010, 12:24
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 77
Регистрация: 18.6.2010
Пользователь №: 1819

Спасибо сказали: 0 раз(а)




Репутация:   0  


Есть 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
  опции профиля:
сообщение 23.11.2010, 15:42
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 56
Регистрация: 23.10.2010
Пользователь №: 2144

Спасибо сказали: 8 раз(а)




Репутация:   546  


Скопировал твой код и все работает, только добавил в конец QTableView::keyPressEvent(event); но дело не в этом...
так что смотри свои код...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
potkin
  опции профиля:
сообщение 23.11.2010, 15:49
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 77
Регистрация: 18.6.2010
Пользователь №: 1819

Спасибо сказали: 0 раз(а)




Репутация:   0  


crashsp,
Цитата
только добавил в конец QTableView::keyPressEvent(event);

А в конец чего добавили, если не секрет ???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
crashsp
  опции профиля:
сообщение 23.11.2010, 15:54
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 56
Регистрация: 23.10.2010
Пользователь №: 2144

Спасибо сказали: 8 раз(а)




Репутация:   546  


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

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


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

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

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
potkin
  опции профиля:
сообщение 24.11.2010, 10:09
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 77
Регистрация: 18.6.2010
Пользователь №: 1819

Спасибо сказали: 0 раз(а)




Репутация:   0  


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

Нет.
Можешь свой рабочий пример выслать ???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
crashsp
  опции профиля:
сообщение 24.11.2010, 11:08
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 56
Регистрация: 23.10.2010
Пользователь №: 2144

Спасибо сказали: 8 раз(а)




Репутация:   546  


Тут высылать то не чего
Тебе же я как понимаю нужно ловить событие в 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
  опции профиля:
сообщение 24.11.2010, 17:45
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 77
Регистрация: 18.6.2010
Пользователь №: 1819

Спасибо сказали: 0 раз(а)




Репутация:   0  


crashsp,
Спасибо )))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.11.2024, 17:37