写代码的杰尼龟 2023-05-23 16:16 采纳率: 25%
浏览 128
已结题

QCustomPlot点击事件无效

使用QCustomPlot做曲线图时,发现点击事件都无效。怎么解决

void QHisCurv::mousePressEvent(QMouseEvent *event)
{
    //movePoint = event->pos();
    ////QPixmap temPixmap = inertPixmap;
    ////QPainter painter(&temPixmap);
    //bDrawMousePresse = true;
    //update();
    ////pixmap = temPixmap;
    ////repaint();
    QMessageBox::information(this,"提示信息","QCustomPlot被点击");
}

  • 写回答

12条回答 默认 最新

  • 码上团建 2023-05-23 16:32
    关注

    可以尝试重写 QCustomPlot 的鼠标点击事件,例如:

    class MyCustomPlot : public QCustomPlot
    {
    public:
        MyCustomPlot(QWidget *parent = nullptr) : QCustomPlot(parent) {}
    
    protected:
        void mousePressEvent(QMouseEvent *event) override
        {
            // 处理鼠标点击事件
            QMessageBox::information(this, "提示信息", "QCustomPlot被点击");
            QCustomPlot::mousePressEvent(event);
        }
    };
    

    然后使用 MyCustomPlot 替换原来的 QCustomPlot 即可:

    MyCustomPlot *plot = new MyCustomPlot(this);
    

    这样就可以在鼠标点击 QCustomPlot 时弹出提示信息了。

    如果还有问题,建议检查一下是否正确连接了信号和槽函数。例如,如果您想在点击曲线时弹出提示信息,可以这样连接信号和槽函数:

    connect(plot, &QCustomPlot::plottableClick, [=](QCPAbstractPlottable *plottable, int dataIndex) {
        QMessageBox::information(this, "提示信息", "曲线被点击");
    });
    

    这样就可以在点击曲线时弹出提示信息了。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月29日
  • 修改了问题 5月23日
  • 创建了问题 5月23日

悬赏问题

  • ¥15 悬赏15远程操控解决问题
  • ¥15 CST复制的模型无法单独修改参数?
  • ¥15 前端页面想做个定时任务,但是使用requestAnimationFrame,setinterval和settimeout都不行
  • ¥15 根据以下文字信息,做EA模型图
  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)
  • ¥15 关于并联谐振电磁感应加热
  • ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量