Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ Определение сигнала наведения на кнопку

Автор: AD 3.10.2008, 14:54

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

Автор: ViGOur 3.10.2008, 19:02

Может нужно просто обрабатывать http://www.crossplatform.ru/documentation/qtdoc4.3/qwidget.php#mouseMoveEvent. Тот виджет на который указывает курсор мышки и будет обрабатывать это событие.

Автор: Litkevich Yuriy 3.10.2008, 19:05

он хочет в одном месте программы узнать над каким виджетом в данный момент уазатель.

Автор: Tonal 6.10.2008, 8:13

QWidget::enterEvent, QWidget::leaveEvent - оно?

Автор: AD 6.10.2008, 8:19

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

Не знаю, сейчас проверю. :)

Автор: AD 6.10.2008, 9:19

Неа, это не то!!!

Автор: Tonal 6.10.2008, 10:11

Тогда объясняй подробнее, что именно тебе надо.

Автор: Litkevich Yuriy 6.10.2008, 10:30

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

можно еще всех дочерних виджетов опрашивать вот таким методом:
bool QWidget::underMouse () const
но это муторно и медленно.

Автор: AD 6.10.2008, 10:51

Да.... не хотелось циклом это делать. Уже сделал. Как-нибудь потом. Задел на будущее, так сказать! Может еще возникнет потребность.

Автор: Tonal 6.10.2008, 19:20

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

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

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

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)