Название: Событие от мышки при наведении на кнопку Отправлено: Admin от Сентябрь 25, 2006, 08:38 Возникла такая проблемка.
Если навестись мышкой на любую кнопку на форме или элемент, должно выскочить событие, по которому покажу справку на кнопку. Как это реализовать? Название: Событие от мышки при наведении на кнопку Отправлено: Alexei от Сентябрь 25, 2006, 08:59 Похоже, кроме void mouseMoveEvent (QMouseEvent* event) ничего подходящего нет.
Название: Событие от мышки при наведении на кнопку Отправлено: ElderOrb от Сентябрь 25, 2006, 10:21 может QWidget::setToolTip() для всех элементов формы ?
Название: Событие от мышки при наведении на кнопку Отправлено: Dendy от Сентябрь 25, 2006, 10:29 Смотреть:
QWidget::enterEvent() QHoverEvent Название: Событие от мышки при наведении на кнопку Отправлено: Admin от Сентябрь 25, 2006, 11:27 mouseMoveEvent замечетельно бы подошло
но там нет имени виджета от которого пришло! хотелочь бы обрабатывать все в общем потоке добавлено спустя 3 минуты: что хотелось бы есть форма от дизайнера, не хотелось бы обрабатывать для каждой кнопки свое событие отдельно а обрабатывать в общем потоке, сравнивая указатель на виджет Название: Событие от мышки при наведении на кнопку Отправлено: ElderOrb от Сентябрь 25, 2006, 11:49 Цитата: "Admin" mouseMoveEvent замечетельно бы подошло но там нет имени виджета от которого пришло! хотелочь бы обрабатывать все в общем потоке добавлено спустя 3 минуты: что хотелось бы есть форма от дизайнера, не хотелось бы обрабатывать для каждой кнопки свое событие отдельно а обрабатывать в общем потоке, сравнивая указатель на виджет В таком случае самое простое - это наставить на все виджэты фильтром какой-нить QObject и в eventFilter-е этого QObject-а поотлавливать всё о чём писал Dendy. Получится как раз всё в одном месте. А вместо имени виджэта для идентификации можно будет использовать objectName(). Название: Событие от мышки при наведении на кнопку Отправлено: Mikhail от Сентябрь 25, 2006, 15:48 Если короткая справка, то устанавливай значение свойства ToolTip.
Очень просто в дизайнере или в интеграции. Название: Событие от мышки при наведении на кнопку Отправлено: Admin от Сентябрь 25, 2006, 17:22 да нет справка длинная
пользователь навел мышу на кнопку и тут же на форме вывелось большой текст Название: Событие от мышки при наведении на кнопку Отправлено: Dendy от Сентябрь 25, 2006, 17:30 Ещё один некрасивьІй способ, но имеющий право на жизнь - создать свой стиль:
Код: void MyStyle::polish( QWidget * widget ) Ещё один способ - навешивать фильтр на родительский обьект и ловить QChildEvent. На пойманньІй дочерний обьект тоже вешаем фильтр. Дальше - то же самое: ловить QEvent::Hover от кнопок аль других виджетов, для которьІх нуна вьІводить подсказки. Название: Событие от мышки при наведении на кнопку Отправлено: yshurik от Сентябрь 25, 2006, 21:12 По поводу mouseMoveEvemt() - в Qt4 он будет работать при setMouseTracking(true);
(Это так, для справки) Название: Событие от мышки при наведении на кнопку Отправлено: bigirbis от Сентябрь 27, 2006, 10:07 Можно так:
Код: QPushButton * button = new QPushButton( tr( "name" ), this ); Код: eventFilter( QObject * object, QEvent * event ) Потом уже можно месить что угодно... Название: Событие от мышки при наведении на кнопку Отправлено: Admin от Сентябрь 27, 2006, 10:53 да! такая простая задача, а сколько способов :)
Название: Событие от мышки при наведении на кнопку Отправлено: bigirbis от Сентябрь 27, 2006, 11:10 Опыт показывает, что надо работать с QEvent::ToolTip - это поможет избежать мерцаний и написаний алгоритмов, которые уже давно реализованы (тем паче, что иначе придется QTimer подключать и пр.).
|