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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Событие QEvent::MouseButtonPress на QTableView  (Прочитано 2860 раз)
radislav72
Гость
« : Декабрь 18, 2014, 14:54 »

Здравствуйте!

Хочу отловить событие QEvent::MouseButtonPress на компоненте QTableView, который размещен на QDialog в дизайнере.
Написал фильтр событий
Код:
bool contract::eventFilter(QObject *o, QEvent *e)
{
    if(e->type() == QEvent::MouseButtonPress)
    {
        if (o == ui->tabvGraphics) createGraphicsPopup();
    }

    return QWidget::eventFilter(o, e);
}
В конструкторе диалога установил фильтр для нужного виджета:
Код:
ui->tabvGraphics->installEventFilter(this);

Но при нажатии мыши на виджете tabvGraphics (класс QTableView) событие не ловится.

В чем может быть дело?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Декабрь 18, 2014, 14:59 »

Попробуйте
Код
C++ (Qt)
if (o == ui->tabvGraphics->viewport())..
Ну и фильтр на него
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #2 : Декабрь 18, 2014, 15:02 »

А может проще наследоваться от QTableView, а в дизайнере преобразовать тот QTableView в свой класс?
Записан
radislav72
Гость
« Ответ #3 : Декабрь 18, 2014, 15:12 »

С viewport все сразу пошло как надо.
Так просто, а столько времени ушло Грустный
Спасибо!

Создавать новый класс все-таки намного дольше
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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