Событие Qt HoverEnter работает только при нажатии на виджетC++

Программы на C++. Форум разработчиков
Ответить
Гость
 Событие Qt HoverEnter работает только при нажатии на виджет

Сообщение Гость »

Я пытаюсь изменить значок QPushButton при наведении курсора.
Проблема в том, что событие Qt HoverEnter работает только при нажатии на виджет.
Этот код работает с моей конфигурацией: https:/ /gist.github.com/peteristhegreat/d6564cd0992351f98aa94f869be36f77
(из Как реализовать QHoverEvent в Qt?)
Поэтому я не понимаю, почему это не работает в моем случае, может быть, я упускаю флаг распространения события между моим QGraphicsScene и моим QPushButton.
Это сбивает с толку, потому что я уже успешно создал код для обработки QEvent::HoverEnter, но для области прокрутки.
Спасибо!< /p>
это мой текущий код (внутри моего QGraphicsView я использую my_QGraphicsScene->addWidget(my_hoverBut)):
#ifndef HOVERBUT_H
#define HOVERBUT_H
#include
#include
#include
#include

class hoverBut : public QPushButton
{
Q_OBJECT
public:
explicit hoverBut(QWidget *parent = nullptr){
setAttribute(Qt::WA_Hover);
}

protected:
bool event(QEvent * e) override
{
qDebug() type())
{
case QEvent::HoverEnter:
case QEvent::HoverLeave:
//Goes here only if clicked
return true;
default:
return QPushButton::event(e);
}
}
};
#endif // HOVERBUT_H


Подробнее здесь: https://stackoverflow.com/questions/784 ... is-clicked
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»