写代码的杰尼龟 2023-05-29 17:17 采纳率: 25%
浏览 102
已结题

关于#QT#的问题,如何解决?

问题遇到的现象和发生背景

我现在做一个关于QCustomPlot绘图的插件,放到软件中的曲线图不能选中。
Visual Studio 2012中写好了使用makefile编译成dll文件。放到软件的文件里面

img


目前是这个样子的。点击曲线没有反应,始终选中不了。

然后我使用vs2012调试时,点击按钮有反应。放到绘图软件中就无效。

img

操作环境、软件版本等信息

vs2012、QCustomPlot2 、QT5

我想要达到的结果

用QCustomPlot封装的插件,放到绘图软件中可以点击和移动

有效答案,成功解决,悬赏追加20

  • 写回答

4条回答 默认 最新

  • Minuw 2023-05-29 17:23
    关注

    QCustomPlot提供了多种交互功能,例如放大缩小、平移、选择、编辑等,可以通过调用QCustomPlot对象的方法来启用这些交互功能。在实现用QCustomPlot封装的插件时,可以在构造函数中启用所需的交互功能,例如:

    MyCustomPlot::MyCustomPlot(QWidget *parent) : QCustomPlot(parent)
    {
        // 启用选择交互功能
        setInteractions(QCP::iSelectPlottables | QCP::iSelectLegend | QCP::iSelectItems);
        // 其他初始化操作
        // ...
    }
    

    在上述代码中,调用setInteractions方法启用了选择交互功能。其中,QCP::iSelectPlottables表示启用选择曲线图的功能,QCP::iSelectLegend表示启用选择图例的功能,QCP::iSelectItems表示启用选择其他图元(例如标签、箭头等)的功能。根据需要启用不同的交互功能即可。

    另外,如果需要在曲线图上单击或拖动鼠标进行移动,可以启用平移交互功能,例如:

    MyCustomPlot::MyCustomPlot(QWidget *parent) : QCustomPlot(parent)
    {
        // 启用选择和平移交互功能
        setInteractions(QCP::iSelectPlottables | QCP::iSelectLegend | QCP::iSelectItems | QCP::iRangeDrag);
        // 其他初始化操作
        // ...
    }
    

    在上述代码中,除了启用选择交互功能外,还启用了平移交互功能QCP::iRangeDrag。这样,在曲线图上单击或拖动鼠标时,就可以平移曲线图了。

    评论 编辑记录

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 wpf datagrid如何实现多层表头
  • ¥15 为啥画版图在Run DRC会出现Connect Error?可我Calibre的hostname和计算机的hostname已经设置成一样的了。
  • ¥20 网站后台使用极速模式非常的卡
  • ¥20 Keil uVision5创建project没反应
  • ¥15 mmseqs内存报错
  • ¥15 vika文档如何与obsidian同步
  • ¥15 华为手机相册里面的照片能够替换成自己想要的照片吗?
  • ¥15 陆空双模式无人机飞控设置
  • ¥15 sentaurus lithography
  • ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)