crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Определение сигнала наведения на кнопку, фокусирование на кнопку
AD
  опции профиля:
сообщение 3.10.2008, 14:54
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


Есть ли сигнал, который определяет наведение (фокусирование) на каком объекте стрелкa мыши?

Сообщение отредактировал AD - 3.10.2008, 19:06
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 3.10.2008, 19:02
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3281
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Может нужно просто обрабатывать QWidget::mouseMoveEvent. Тот виджет на который указывает курсор мышки и будет обрабатывать это событие.

Сообщение отредактировал ViGOur - 3.10.2008, 19:02
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.10.2008, 19:05
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9635
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


он хочет в одном месте программы узнать над каким виджетом в данный момент уазатель.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 6.10.2008, 8:13
Сообщение #4


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

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




Репутация:   17  


QWidget::enterEvent, QWidget::leaveEvent - оно?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 6.10.2008, 8:19
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


Цитата(Tonal @ 6.10.2008, 9:13) *
QWidget::enterEvent, QWidget::leaveEvent - оно?

Не знаю, сейчас проверю. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 6.10.2008, 9:19
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


Неа, это не то!!!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 6.10.2008, 10:11
Сообщение #7


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

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




Репутация:   17  


Тогда объясняй подробнее, что именно тебе надо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 6.10.2008, 10:30
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9635
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


вот уже ближе, но еще не то:
QWidget * QWidget::mouseGrabber () [static]

можно еще всех дочерних виджетов опрашивать вот таким методом:
bool QWidget::underMouse () const
но это муторно и медленно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 6.10.2008, 10:51
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


Да.... не хотелось циклом это делать. Уже сделал. Как-нибудь потом. Задел на будущее, так сказать! Может еще возникнет потребность.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 6.10.2008, 19:20
Сообщение #10


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

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




Репутация:   17  


Да вроде бы всё просто: ставишь фильтр на QApplication и ловишь события QEvent::Enter и QEvent::Leave.
Пока виджет, для которого был QEvent::Enter но ещё не было QEvent::Leave - под мышей. :)

Ну, или в интересующие моменты просто зовёшь QApplication::widgetAt. :)

П.С. Имей в виду, QEvent::Enter и QEvent::Leave могут приходить в "странном" порядке. По крайней мере я с таким сталкивался в аналоге на WinApi

Сообщение отредактировал Tonal - 6.10.2008, 19:22
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 23.4.2018, 20:08