Я программирую приложение. в QT c ++ и иметь следующий вопрос:
Можно ли поймать событие мыши при нажатии на оси (не на самой диаграмме) диаграммы qchart?
Я пытался перезаписать метод события экземпляра оси, но метод события не вызывается ..
Я также попытался решить проблему с помощью EventFilter на экземпляре QChart, пока он работает. Но как отличить щелчок мыши между областью Оси и Qchart?
//Mouse filter Object:
MousePressEater::MousePressEater(Axes* ax)
{
this->axis = ax;
}
bool MousePressEater::eventFilter(QObject *obj, QEvent *event)
{
//qDebug() << event->type();
if (event->type() == QEvent::UngrabMouse) {
QMouseEvent *mEvent = static_cast<QMouseEvent *>(event);
qDebug("Ate mouse press %d %d %d %d", mEvent->pos().x() , mEvent->pos().y() , axis , obj );
return true;
} else {
// standard event processing
return QObject::eventFilter(obj, event);
}
}//Installing the filter in the constructor(inherited from QChart):
MousePressEater *mPressEater = new MousePressEater(ax);
this->installEventFilter(mPressEater);
«obj» просто возвращает указатель на экземпляр QChart, если щелкнуть по оси.
У кого-нибудь есть решение этой проблемы?
Спасибо!
Пожалуйста, проверьте документацию для * QObject :: installEventFilter (QObject filterObj) и * void QWidget :: mousePressEvent (QMouseEvent событие)
Других решений пока нет …