gpt4 book ai didi

c++ - 单击 qchart 图的轴时捕获鼠标事件

转载 作者:太空宇宙 更新时间:2023-11-04 12:53:16 25 4
gpt4 key购买 nike

我正在编写一个应用程序。在 QT c++ 中并有以下问题:单击 qchart 图的轴(不在图本身)时是否可以捕获鼠标事件?

我试图覆盖axes实例的事件方法,但是没有调用事件方法..

我还尝试使用 QChart 实例上的事件过滤器解决问题,事件过滤器目前有效。但是如何区分Axis和Qchart区域本身的mouseclick呢?

//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 event)

关于c++ - 单击 qchart 图的轴时捕获鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47902542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com