在qml中的qtcharts上拖动一个点

2024-03-25

我正在尝试在 qtcharts 上拖动 LineSeries 上的一个点。这是我的代码:

import QtQuick 2.0
import QtCharts 2.0

Item {
    anchors.fill: parent

    ChartView {
        title: "Two Series, Common Axes"
        anchors.fill: parent

        ValueAxis {
            id: axisX
            min: 0
            max: 10
            tickCount: 5
        }

        ValueAxis {
            id: axisY
            min: -0.5
            max: 1.5
        }

        LineSeries {
            id: series1
            axisX: axisX
            axisY: axisY
            onPressed: console.log("Pressed: " + point.x + ", " + point.y);   
            onReleased: console.log("Released: " + point.x + ", " + point.y);
        }


    }
    // Add data dynamically to the series
    Component.onCompleted: {
        for (var i = 0; i <= 10; i++) {
            series1.append(i, Math.random());
        }
    }
}

当我按下 Lineserie 上的一个点时,我可以在控制台中看到我按下并释放的点的 x,y。不过两者都是一样的,所以我看不到它发布的地方。我想将一个点拖动到另一个位置,因此如果我按下一个点,它会跟随(触摸屏上的鼠标/手指)指针,直到我在图表上释放为止。任何人都可以帮助我从哪里开始以及我应该使用哪些属性?


不幸的是两者ChartView and LineSeries没有 MouseMove 事件,因此很难跟踪拖动事件。我有一个解决方法,使用 MouseArea 放置在图表上。也许是一个愚蠢的解决方案,但至少它有效。我已将其采用到您的示例中:

ChartView {
    id: chart
    property var selectedPoint: undefined
    title: "Two Series, Common Axes"
    anchors.fill: parent
    antialiasing: true
    property real toleranceX: 0.05
    property real toleranceY: 0.05

    ValueAxis {
        id: axisX
        min: 0
        max: 10
        tickCount: 5
    }

    ValueAxis {
        id: axisY
        min: -0.5
        max: 1.5
    }

    LineSeries {
        id: series1
        axisX: axisX
        axisY: axisY
        pointsVisible: true            
    }

    MouseArea {
        anchors.fill: parent
        onPressed:
        {
            var cp = chart.mapToValue(Qt.point(mouse.x,mouse.y));
            for(var i = 0;i < series1.count;i ++)
            {
                var p = series1.at(i);
                if(Math.abs(cp.x - p.x) <= chart.toleranceX && Math.abs(cp.y - p.y) <= chart.toleranceY)
                {
                    chart.selectedPoint = p;
                    break;
                }
            }
        }
        onPositionChanged: {
            if(chart.selectedPoint != undefined) {
                var p = Qt.point(mouse.x, mouse.y);
                var cp = chart.mapToValue(p);
                if(cp.x >= axisX.min && cp.x <= axisX.max && cp.y >= axisY.min && cp.y <= axisY.max) {
                    series1.replace(chart.selectedPoint.x, chart.selectedPoint.y, cp.x, cp.y);
                    chart.selectedPoint = cp;
                }
            }
        }

        onReleased: {
            chart.selectedPoint = undefined;
        }
    }

}
// Add data dynamically to the series
Component.onCompleted: {
    for (var i = 0; i <= 10; i++) {            
        series1.append(i, Math.random());
    }
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在qml中的qtcharts上拖动一个点 的相关文章

  • 如何为 qmlRegisterSingletonType 实现单例提供程序?

    我想在 QML 中使用 C 类作为 Singleton 实例 并认为我必须使用 qmlRegisterSingletonType 注册它们 此函数需要一个提供已注册 C 类的实例的函数 我在 Windows 上使用最新的 Qt 5 3 1
  • 使用 QTextCursor 选择一段文本

    使用 Qt 框架选择文本片段时遇到问题 例如 如果我有这个文件 没有时间休息 我想选择 ime for r 并从文档中删除这段文本 我应该如何使用 QTextCursor 来做到这一点 这是我的代码 QTextCursor cursor n
  • 在哪里可以找到 QT 5.3.0 命令提示符

    用于学习Qt的书 C gui programming with qt 4 2nd 版 我需要Qt的命令提示符 我已经安装了Qt 5 3 0 creator 5 3 0开源 但不知道它的命令提示符在哪里 有人可以帮助我吗 我认为您正在寻找的是
  • Qml 和模糊图像

    我想使用 QML 实现模糊效果 我找到了有关 效果 模糊 的参考资料 例子 http qt gitorious org lscunha qt components lscunha qt components blobs d78feec567
  • 如何使用 Qt DOM 通过此语法获取 xml 属性

    我正在使用 Qt DOM XML 解析器 并且遇到了如下属性定义的问题
  • 用 C++/Qt 编写的程序中的 RTF / doc / docx 文本提取

    我正在写一些程序Qt https en wikipedia org wiki Qt 28software 29 C 我需要从中读取文本微软Word https en wikipedia org wiki Microsoft Word RTF
  • QStyledItemDelegate 绘制自定义小部件失败

    在我的一个项目中 我使用的是QTableWidget为了显示一些复杂的计算结果 为了提高表格的可读性 我需要在单个表格单元格内显示两个对齐的值 后来我想通过使用颜色或箭头等来进一步自定义小部件 为此我源自QStyledItemDelegat
  • 清除pyqt中布局中的所有小部件

    有没有办法清除 删除 布局中的所有小部件 self plot layout QtGui QGridLayout self plot layout setGeometry QtCore QRect 200 200 200 200 self r
  • 如何在针对 Windows XP 的情况下使用 VS2012 构建 Qt 4/5?

    我正在尝试使用 Visual Studio 2012 构建 Qt 4 8 5 Qt 5 2 1 针对 Windows XP SDK v7 1a 使用 VS2102 编译时 源代码与 SDK v7 1a 存在各种不兼容性 因此无法开箱即用 这
  • 在 Qt 中使用多个不同的流读取同一文件

    使用 Qt 是否可以使用多个流读取文件以同时访问其中的不同数据部分 请注意 Qt 中的流 QTextStream QDataStream 不处理底层设备中的位置 流类只是一个包装器 用于更轻松地解析设备 QFile 实例 内的二进制数据 因
  • Qt 嵌入式触摸屏 QMouseEvents 在收到 MouseButtonRelease 之前未收到

    我在带有触摸屏的小型 ARM 嵌入式 Linux 设备上使用 Qt 4 8 3 我的触摸屏配置了 tslib 并对其进行了校准 因此 etc 中有一个 pointcal 文件 我的触摸事件的位置工作得很好 但无论如何我都会在鼠标按下或鼠标释
  • Qt中用于线程间通信的类设计

    问题陈述 用相机跟踪物体并相应地移动相机的方位角和仰角 Process 相机获取物体的图像 处理相机的每一帧以查找物体 应该被跟踪 并将每帧中生成的信息传递给机械设备 万向节 以平移和倾斜方式移动摄像机 Design 主 Gui 在一个线程
  • Qt 5.1.1 与 Visual Studio 2012 - 这些 QT 版本无法访问

    打开 Visual Studio 时出现此错误 我安装自http qt project org downloads http qt project org downloads 适用于 Windows 64 位的 Qt 5 1 1 VS 20
  • 如何在Android中使用QML - QWebView

    我想在 Android 中部署一个 YouTube 应用程序 但它只能在我的电脑上运行 在安卓上不起作用 它不加载任何视频 问题仅出在 QWebView 上 我使用了与此类似的代码 http doc qt io archives qt 5
  • 了解 Qt3D 创建的网格

    我创建了一个 Qt3D 网格 如下所示 Qt3DCore QEntity newEntity new Qt3DCore QEntity Qt3DExtras QConeMesh mesh new Qt3DExtras QConeMesh m
  • 使用 QGraphicsScene 实现流畅的动画

    我希望我的问题并不总是同样的问题 我有一个 QGraphicsScene 它的项目是一些 QGraphicsPixmap 我用一个计时器来移动它们 每秒 SetX 10 我设置 10是因为窗口大100 使用这个解决方案我的动画不流畅 我想我
  • QML 列表视图拖放

    我想创建两个 qml 列表视图 可以执行两个功能 拖放一个列表中的项目以更改项目的顺序 跨列表拖放项目 项目将从一个列表中删除并添加到另一个列表中 根据 Qt 文档中的拖放示例 我决定创建两个访问同一列表模型的列表视图 列表模型中的每个项目
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • Qt 支持 Windows 蓝牙 API 吗?

    谁能告诉我 Qt 是否支持 Windows 蓝牙 API 如果是这样 您能否分享一些有关如何使用它的信息 自上次答复以来 这个问题的答案发生了一些变化 Qt 5 2 版为 Linux BlueZ 和 BlackBerry 设备实现了蓝牙 A
  • 在 Qt 中自动调整标签文本大小 - 奇怪的行为

    在 Qt 中 我有一个复合小部件 它由排列在 QBoxLayouts 内的多个 QLabels 组成 当小部件调整大小时 我希望标签文本缩放以填充标签区域 并且我已经在 resizeEvent 中实现了文本大小的调整 这可行 但似乎发生了某

随机推荐

  • 使关闭按钮隐藏而不是关闭[重复]

    这个问题在这里已经有答案了 如何使表单上的关闭按钮有效地充当 隐藏 按钮 有没有办法中止FormClosing event 你可以只捕获FormClosing事件并停止默认操作 然后不关闭表单而只是隐藏它 private void Form
  • NetBeans 12 不再管理库

    一周前 我将 Java IDE 升级到 Netbeans 12 和 JDK 14 直到昨天我才注意到窗口 项目属性 MYPROG 缺乏基本功能 即没有用于编译的行 jar 并且大多数情况下没有任何行可以添加 jar库 而是有一个空行Java
  • 如何在 xamarin android 应用程序中使用动画?

    我想使用 Xamarin C 在我的 Android 应用程序中使用动画 动画 如淡入 放大 移动等等 首先在 resources 文件夹下添加一个文件夹 将其命名为 anim 然后你可以向其中添加你的动画资源 例如 对于淡入动画 在 an
  • 检查 JQuery 移动复选框是否被选中

    我有一个复选框列表 我想获取每个复选框的状态 名单在这里 div fieldset fieldset div
  • 有没有办法在 Zend Framework 1.5 中执行“INSERT...ON DUPLICATE KEY UPDATE”?

    我想用ON DUPLICATE KEY UPDATE在 Zend Framework 1 5 中 这可能吗 Example INSERT INTO sometable VALUES ON DUPLICATE KEY UPDATE 我在 Ze
  • 实施委托

    我想我正在关注代表团的运作方式 这是我遵循的教程 http www iphonedevsdk com forum iphone sdk tutorials 81489 how why implement delegation pattern
  • 在导入 Google 电子表格之前过滤 CVS

    我在 Google 电子表格中有一个脚本 该脚本从 URL 下载压缩的 CSV 然后将其导入电子表格 实际上 CVS 太大了 我不需要其中的所有数据 我的问题是 如何在将数据导入电子表格之前过滤数据 例如 使用 X 值过滤 A 列 这是我到
  • Java 线程是如何工作的

    我是一名Java学习者 试图理解线程 我期望下面的程序按顺序输出 线程已启动 运行方法 再见 但我按顺序得到输出 再见 线程已启动 Run 方法 这是我的代码 public class RunnableThread public stati
  • 实体框架继承映射 (TPH)

    我正在努力将项目从 nHibernate 转换为实体框架 并陷入映射继承的映射问题 我有以下基类 为简洁起见缩短 public abstract class Status public Guid Id get set public stri
  • Android 应用程序中的多个包

    我在我的应用程序中包含了另一个开发人员免费提供的课程 他的班级有不同的包 这会在 Android 市场等方面造成任何问题吗 应用程序中的每个类都需要是我自己的包吗 尽管这是一个非常古老的问题 但我想澄清一下 Java 级 包 问题所在 和
  • 带有 SSIS 包的 SQL Server 作业 - 无法解密受保护的 XML 节点“DTS:Password”,错误为 0x8009000B

    我有一个运行 SSIS 包的 SQL 服务器作业 该作业有 9 个步骤 每个步骤都从不同的数据库中提取数据 连接字符串被定义为每个步骤中的参数 当我运行作业时 我收到以下错误 Executed as user USER MYSERVER M
  • 下划线模板抛出变量未定义错误

    我看过一些关于主干js主题的视频 这是直接来自视频的示例 这是从 2012 年开始的 所以我认为主干规则 库已经改变 但我不明白为什么这目前不起作用 在视频中 该人展示了它在 JS Fiddle 中运行 但我无法让它工作 我已经在 J S
  • 如何使用 Resharper 对类型成员重新排序?

    典型场景 很多人都参与过的课程 我想按字母顺序对方法 属性等进行排序 我希望能够在本地区或全球范围内的课堂上做到这一点 我看到 Resharper 中的功能可以做到这一点 但它似乎没有做任何事情 使用 清理代码 功能 可以在 语言 C 类型
  • 一个流中的多个“匹配”检查

    是否可以检查数组 或集合 是否包含元素 5and5 以外的元素 one返回布尔结果的流而不是使用两个流 int ints new int 1 2 3 4 5 boolean hasFive IntStream of ints anyMatc
  • Savefig 输出空白图像

    我正在尝试保存使用 matplotlib 绘制的图 但是 图像保存为空白 这是我的代码 plt subplot 121 plt imshow dataStack cmap mpl cm bone plt subplot 122 y copy
  • 如何在 android 中创建视频网址的缩略图?

    我有一个问题 我只能创建本地视频文件的缩略图 而不能创建远程 URL 的缩略图 这是我的代码 bmThumbnail ThumbnailUtils extractThumbnail ThumbnailUtils createVideoThu
  • 淘汰赛和 jQuery 自动完成

    淘汰值绑定不适用于 jquery 自动完成 如何让它发挥作用 我有一个模板
  • sbrk 在 malloc.c 中如何/在何处使用?

    我在 高级 Unix 编程 以及其他几本书 中读到 Linuxmalloc 使用Linux系统调用sbrk 向操作系统请求内存 我正在看 glibcmalloc c代码 我可以看到很多提及sbrk 在注释中 但没有在代码中直接引用 如何 在
  • 有没有更聪明的方法从位数组中提取?

    我有可以被视为 位数组 的内存区域 它们相当于 unsigned char arr 256 但最好将其视为 bit arr 2048 我正在访问其中的单独位 define GETBIT x in in x 8 1 lt lt 7 x 8 但
  • 在qml中的qtcharts上拖动一个点

    我正在尝试在 qtcharts 上拖动 LineSeries 上的一个点 这是我的代码 import QtQuick 2 0 import QtCharts 2 0 Item anchors fill parent ChartView ti