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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt и события (QEvent)  (Прочитано 4865 раз)
admin_007
Гость
« : Ноябрь 13, 2007, 10:59 »

Помогите плиз.
Мне надо перехватить нажатие кнопки мышки на tableView.
сообщение "ev" работает во все случаях (когда нажимаю на клавиатуру и когда нажимаю на мышку)
Но при нажатии на мышку не выводиться сообщение: "m_ev".
Т.е. условие не выполняется. Что то в строке: QEvent::MouseButtonPress.
Если я ее заменю на QEvent::KeyPress то все работает. Почему же с мышкой не работает?

Вот следующий код:

bool MyClass::eventFilter(QObject* target, QEvent* event)
{
if(target == tableView1)
{
cout << "ev\n";
if(event->type() == QEvent::MouseButtonPress)
{
cout << "m_ev\n";
return QWidget::eventFilter(target, event)
}
}
return QWidget::eventFilter(target, event)
}

Спасибо.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Ноябрь 13, 2007, 11:05 »

Попробуйте повесить фильтр на viewport()

Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
admin_007
Гость
« Ответ #2 : Ноябрь 13, 2007, 11:23 »

Что это такое?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #3 : Ноябрь 13, 2007, 14:14 »

Очевидно, сейчас вы установили фильтр таким образом:

tableView1->installEventFilter(this);

попробуйте сделать вот так:

tableView1->viewport()->installEventFilter(this);

ЗЫ: Что такое viewport читаем в ассистанте
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Dodge
Гость
« Ответ #4 : Ноябрь 13, 2007, 14:31 »

А не проще mousePressEvent переопределить?
или необходимо ловить именно чужой евент?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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