Как вариант решения можно создать класс фильтр нужного тебе события, я так делала. Т.е. для твоего случая будет выглядеть следующим образом:
файл .h
class KeyPressEater : public QObject
{
Q_OBJECT
public:
static KeyPressEater* getInstance();
private:
static KeyPressEater *s_instance;
explicit KeyPressEater(QObject *parent = 0);
protected:
bool eventFilter(QObject *obj, QEvent *event);
};
файл .cpp
KeyPressEater::KeyPressEater(QObject *parent):
QObject(parent){
}
KeyPressEater* KeyPressEater::s_instance = 0;
KeyPressEater* KeyPressEater::getInstance(){
if ( ! s_instance )
s_instance = new KeyPressEater;
return s_instance;
}
bool KeyPressEater::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::HoverEnter) { // здесь мы ловим событие наведения.
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
Balance::getInstance()->on_news_clicked();
return true;
} else {
// standard event processing
return QObject::eventFilter(obj, event);
}
}
Потом установи этот фильтр в объект класса QLabel методом installEventFilter(KeyPressEater::getInstance()/*указатель на приведенный выше класс*/);