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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTextView: отлов события нажатия кнопки мыши  (Прочитано 6713 раз)
Perchilla
Гость
« : Январь 16, 2005, 22:10 »

Народ, поскажите как переопределить сигнал нажатия. У меня класс QTextView? делаю так:
Код:

bool VarBtn::event(QEvent *evn)
{
if (evn->type()==QEvent::MouseButtonRelease)
{
emit varPClick(varnum);
return true;
};
return QWidget::event(evn);
};

тут VarBtт - наследник QTextView, а varPClick(varnum) - это создаваемый сигнал.
Сигнал срабатывает, только при нажатии на границу виджета, а как отловить нажатие на рабочую область?
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #1 : Январь 16, 2005, 23:19 »

я глянул в доку написано

Код:

bool QWidget::event ( QEvent * e ) [virtual protected]
This is the main event handler; it handles event e. You can reimplement this function in a subclass, but we recommend using one of the specialized event handlers instead.


как я понял рекомендуют воспользоватся

Код:
virtual void mousePressEvent ( QMouseEvent * e ) 
virtual void mouseReleaseEvent ( QMouseEvent * e )
virtual void mouseDoubleClickEvent ( QMouseEvent * e )
virtual void mouseMoveEvent ( QMouseEvent * e )
Записан
Perchilla
Гость
« Ответ #2 : Январь 17, 2005, 00:19 »

Цитата: "Admin"
я глянул в доку написано

Код:

bool QWidget::event ( QEvent * e ) [virtual protected]
This is the main event handler; it handles event e. You can reimplement this function in a subclass, but we recommend using one of the specialized event handlers instead.


как я понял рекомендуют воспользоватся

Код:
virtual void mousePressEvent ( QMouseEvent * e ) 
virtual void mouseReleaseEvent ( QMouseEvent * e )
virtual void mouseDoubleClickEvent ( QMouseEvent * e )
virtual void mouseMoveEvent ( QMouseEvent * e )


Я посмотрел исходники, эти события вроде один и тот же QWidget::event используют. Наверное  в самом QTextView есть встронный виджет, который и ловит все события, только я не могу найти какой  Грустный .
Решил проблему пока варварским методом: назначел свой сокет, в констркуторе виджета перенаправил сигнал clicked(int, int) в етот сокет, а из сокета сделал вызов своего сигнала, с передачей необходимых мне параметров  Веселый .

Если кто подскажет как через event сделать, буду очень благодарен.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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