如何设置 QML 图表视图的缩放原点

2023-12-20

我正在使用 QT QML 和 QTCharts 开发数据演示应用程序。我正在使用 ChartView 和线系列来显示 XY 数据。除了捏合和缩放图表之外,一切都有效。该应用程序针对移动触摸设备。

我希望能够捏合和缩放图表并将缩放原点设置为捏合的中心。目前,我可以正常工作,但图表始终仅从图表中心缩放。

这在 QML 中可能吗?

谢谢你的帮助。


解决方案是使用zoomIn(rect rectangle) https://doc.qt.io/qt-5.10/qml-qtcharts-chartview.html#zoomIn-method-1方法,可以接收可见矩形作为参数,在您的情况下,矩形必须以您单击的点为中心。

import QtQuick 2.9
import QtQuick.Window 2.2
import QtCharts 2.0

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    ChartView {
        id: chartView
        anchors.fill: parent
        theme: ChartView.ChartThemeBrownSand
        antialiasing: true

        LineSeries {
            name: "LineSeries"
            XYPoint { x: 0; y: 0 }
            XYPoint { x: 1.1; y: 2.1 }
            XYPoint { x: 1.9; y: 3.3 }
            XYPoint { x: 2.1; y: 2.1 }
            XYPoint { x: 2.9; y: 4.9 }
            XYPoint { x: 3.4; y: 3.0 }
            XYPoint { x: 4.1; y: 3.3 }
        }

        MouseArea{
            anchors.fill: parent
            onDoubleClicked: chartView.zoomReset();
        }

        PinchArea{
            id: pa
            anchors.fill: parent
            onPinchUpdated: {
                chartView.zoomReset();
                var center_x = pinch.center.x
                var center_y = pinch.center.y
                var width_zoom = height/pinch.scale;
                var height_zoom = width/pinch.scale;
                var r = Qt.rect(center_x-width_zoom/2, center_y - height_zoom/2, width_zoom, height_zoom)
                chartView.zoomIn(r)
            }

        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何设置 QML 图表视图的缩放原点 的相关文章

  • Qt 编译器标志顺序

    我的目标是消除某些类型的编译器警告 我发现可以通过在 pro 文件中添加编译器标志来做到这一点 QMAKE CXXFLAGS Wno unused variable Wno reorder 问题是它们被添加在 Qt 构建系统生成的标志之前
  • QObject多重继承

    我正在尝试在 C Qt 类中使用 mix 来提供一大堆具有通用接口的小部件 该接口是以这样的方式定义的 如果它被定义为其他小部件类的基类 那么小部件本身将具有这些信号 class SignalInterface public QObject
  • PyQt 和 QSignalMapper/lambdas - 多个信号,单槽

    我在 PyQt 的菜单上有一个操作列表 每个操作对应我想要显示的每个不同的提要 所以我有一个 Y 将活动源设置为 Y Z 将其设置为 Z 等等 对于网络漫画阅读程序 我的菜单上都有 并且觉得自动化方法可能更好 而不是每次都打字 类似于将其添
  • 如何在不同的QT线程中创建一个窗口?

    我有一个应用程序 其中每个线程 主线程除外 都需要创建自己的窗口 我尝试创建一个线程然后调用this gt exec in the run功能 然而 在我接到那个电话之前我就收到了一个错误 ASSERT failure in QWidget
  • QMessageBox::about 可以根据标题长度调整大小吗?

    我想创建一个简单的 关于 对话框 但注意到QMessageBox about不会根据标题的长度调整其大小 由于字体较大 标题通常会更长 至少在我的桌面环境中 仅根据内容调整其大小 有没有办法确保对话框足够大以显示所有标题 我当然可以向 ab
  • QFileDialog 作为 TableView 的编辑器:如何获取结果?

    我正在使用一个QFileDialog作为某些专栏的编辑QTableView 这基本上有效 对一些焦点问题取模 请参阅here https stackoverflow com questions 22854242 qfiledialog as
  • MSVC C4100:“应用程序”:未引用的形式参数警告

    使用 MSVC 编译时 以下代码会生成 C4100 警告 这怎么可能 显然引用了 应用程序 class ApplicationInfo public QObject Q OBJECT public static void initializ
  • 为什么anchors.centerIn不适用于Column元素?

    我有这段 QML 代码 Column spacing units gu 2 anchors fill parent centerIn parent Row spacing units gu 4 Row spacing units gu 4
  • 如何使用bind将成员函数作为函数指针传递?

    我试图将成员函数作为函数指针传递 这样我就不需要依赖单例或全局函数来处理 Qt 5 中的 Qt 消息 据我所知 我的 std function 是正确的类型 它具有正确的签名 并且绑定应该允许我插入隐式this指针 本质上是将成员函数传递为
  • 当给定 100k 项时,QListView 需要很长时间才能更新

    我在读取文件时遇到问题 具体是我想制作一本小字典 在我需要阅读的文件中有这样的内容 a Ph P6 a snsr CA a b c fb Dj a b c book i BS A except B gate oOPa y a font kQ
  • Qt 和 MOC 的困境与简单的制作

    我想这更像是一个 GNU Make 问题 而不是 Qt 和 moc 但这里是 我有一个包含多个目录Q OBJECTS 我有一些简单的代码 它收集所有这些 例如 MOCS shell grep l Q OBJECT HEADERS Assum
  • Qt - QProcess 不工作

    我尝试启动 Internet Explorer 所以我使用下面的代码 QProcess process new QProcess this QString temp C Program Files Internet Explorer iex
  • PySide6.1 与 matplotlib 3.4 不兼容

    当我只安装PySide6时 GUI程序运行良好 但是一旦我安装了matplotlib及其依赖包 包括pyqt5 则GUI程序将无法运行并输出以下错误消息 This application failed to start because no
  • Qt 码头调整大小事件

    有没有办法在 Qt 中捕捉码头的调整大小事件 我需要能够检测到扩展坞何时调整大小 而不仅仅是其位置或 功能 发生变化时 看起来 QDockWidget 没有 调整大小 信号 如果您不希望子类化以仅获得调整大小事件控件 您可以安装事件过滤器
  • QtWebEngine Quicknano 在嵌入式 Linux 中没有声音

    我已将 QtWebEngine 编译到我的 i MX6 嵌入式设备中 当我尝试使用 Quicknanobrowser 播放 YouTube 视频时 视频会播放 但没有声音 事实上 当我尝试播放音频文件时没有声音hpr dogphilosop
  • 如何在Qt中更快地读取数据?

    Qt读取数据库比C 慢吗 我想我错过了一些东西 为了比较阅读速度 我在 Qt 中编写了以下内容 QElapsedTimer t t start int count 0 QString cs Driver SQL Server Server
  • Qt ObjectName() 必须是唯一的吗?

    如标题所示的简单问题 如果我打电话setObjectName 在一个对象上 它是否必须是唯一的 或者只是因为约定而推荐 我已经子类化了QLabel 并希望自动为创建的对象命名 如果这是一个坏主意 我会找到一些设置随机唯一名称的方法 我实际上
  • 在 Qt 中构建 Android 项目不再有效

    所以我对 Android SDK NDK 和 Apache Ant 进行了一些更新 现在我无法构建任何 Android 项目 我收到一条警告 然后它说找不到 build xml 文件 错误 Warning Android platform
  • QStandardItemModel::removeRows() 在我的用例中不起作用

    基本上我想删除模型中的所有行 我更喜欢使用removeRows 代替clear 因为我想保留我的标题 我想我错过了一些东西 文档在这里 http doc qt nokia com 4 7 snapshot qstandarditemmode
  • 如何在 PySide/PyQt 中制作一个位于屏幕中央的小部件?

    这段代码有效 但我想知道是否有更简单的方法 def center self qr self frameGeometry cp gui QDesktopWidget availableGeometry center qr moveCenter

随机推荐

  • 使用 Conditional 属性标记仅返回任务的异步方法?

    The System Diagnostics ConditionalAttribute对于分割调试代码片段而不需要使用编译器指令确实很有用 但它只与返回的方法兼容void 有没有办法将它 或等效的东西 用于返回 a 的异步方法Task No
  • 请求取消不会传播到云运行容器

    当发送到云运行服务的 HTTP 请求被发起服务取消时 取消 关闭的连接不会传播到云运行容器内正在服务的请求 示例代码 package main import log net http os time func main port os Ge
  • bash:mkvirtualenv:找不到命令

    按照以下说明进行操作后道格 海尔曼的virtualenvwrapper post https doughellmann com posts virtualenvwrapper 我仍然无法启动测试环境 mpenning tsunami mkv
  • COM 互操作传递错误的指针,只有一个字节的数据

    我在使用 COM 将指针传递给本机代码时遇到问题 我想在托管 C 代码中构建一个字节数组 并将该数组传递给本机 C 代码 我正在处理托管代码方面 我的同事负责本机方面 请注意 我在托管方面更强大 并且我几乎一直在使用所写的 COM 对象 C
  • 如果已选择,则单击时取消选择 GridView.Item

    我知道这看起来很简单 我也是这么想的 但实际上并非如此 我有一个 GridView SelectionMode Single 我想通过单击来简单地取消选择选定的项目 问题是 当您选择已选择的项目时 SelectionChanged 不会触发
  • 分钟变化时不调用 TIME_TICK

    我面临的问题是 当时间更改时 TIME TICK 仅在应用程序运行时调用 但我希望即使应用程序正在运行或不使用广播接收器也能调用它 主要活动 public class MainActivity extends Activity Overri
  • 如何在一个命令中执行多个 lein 任务?

    我是莱宁根的新手 当我尝试执行以下操作时 lein clean jar I got Wrong number of arguments to clean task Expected 如何在一个命令中执行多个任务 是的 可以执行多个莱宁根通过
  • Delphi Xe2 VCL 样式和网页浏览器

    Win7 x64 Delphi Xe2 更新2 Prompt 新项目编译为x32 在项目选项中应用视觉 vcl 样式 默认选择一种 在表单上的button1和WebBrowser1 在按钮中我们编写WebBrowser1 Navigate
  • 点击事件在 Chrome 中不起作用,但当我们从控制台手动执行它时,事件会触发

    从几个小时开始 我就试图找到一个棘手的客户问题的根本原因 感谢帮助 客户端 Chrome 浏览器中没有任何点击事件被触发 但是当我们从控制台调用 JavaScript 方法时 它就会触发 在附图中 您可以看到我如何触发该事件 尝试删除 da
  • 具有多个变量的 Sass @each

    我刚刚开始使用 Sass 和 Compass 我很喜欢它 我想做的就是利用 each简化重复性任务的功能 然而 我只看到过这样的例子 each插入一个变量 并且我希望能够使用多个变量 标准方式 从Sass 参考 http sass lang
  • jQuery 全局事件和性能?

    我正在寻找一种使用 jQuery 显示状态指示器的方法 我在 jQuery Cookbook 中找到了一个解决方案 它显示了这个解决方案 function document ready function ajaxStatus ajaxSta
  • 识别 Unix 域套接字连接的另一端

    我试图找出哪个进程正在持有 unix 域套接字的另一端 在一些strace输出 我已经识别出一个给定的文件描述符 该文件描述符涉及我当前正在调试的问题 并且我想知道哪个进程位于该描述符的另一端 由于该套接字有多个连接 因此仅通过路径名是行不
  • 如何计算Python中包含字符串的两个列表的杰卡德相似度?

    我有两个包含用户名的列表 我想计算 Jaccard 相似度 是否可以 This https stackoverflow com questions 11911252 python jaccard distance using word in
  • 使用ajax调用PHPExcel下载

    App import Vendor PHPExcel Classes PHPExcel objPHPExcel new PHPExcel objPHPExcel gt getActiveSheet gt setTitle ReceivedM
  • 自定义 URL WordPress REST API

    我正在构建一个使用 WordPress 后端数据的应用程序 大多数数据都缓存在服务器上的 JSON 文件中 但应用程序允许放置注释 因此必须从应用程序内部调用 API 我担心当 WordPress 决定更改 URL 时 wp json wp
  • PHP版本的ASP.NET/C# property属性类

    有这样的事吗 我想在 PHP 中做这样的事情 但我无法从 PHP 文档中看到如何做到这一点 public class User ValidationBase NotNullOrEmpty Message Please enter a use
  • 像访问单个数组一样访问结构成员?

    我有两个结构 其值应该计算经过深思熟虑的平均值 就像这个简化版本 typedef struct int v move v read v suck v flush v nop v call values typedef struct int
  • Android 画廊选择,如 Whatsapp

    这个问题以前曾被问过 但恐怕答案可能已经过时了 如何使用原生图库应用程序 例如 API 14 开启 来实现像 WhatsApp 一样的多图片选择 你的意思是 Intent intent new Intent intent setType i
  • MS Access 导出错误:“保留错误 (-1);没有关于此错误的消息。”

    我正在尝试导出Select来自 Access 数据库的查询 我以管道分隔的文本文件形式给出 它曾经有效 但后来客户让我更改查询 我这样做了 现在我得到了错误 保留错误 1 没有关于此错误的消息 当我尝试导出时 导出失败 我以前从未遇到过此错
  • 如何设置 QML 图表视图的缩放原点

    我正在使用 QT QML 和 QTCharts 开发数据演示应用程序 我正在使用 ChartView 和线系列来显示 XY 数据 除了捏合和缩放图表之外 一切都有效 该应用程序针对移动触摸设备 我希望能够捏合和缩放图表并将缩放原点设置为捏合