问题标签 [qchartview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - QChart::zoom 后如何自动滚动(调整)Y 轴?
我正在学习 QtCharts。我需要缩放图表,并相应地调整 Y 轴的范围,以使线条的逻辑可见部分可以完全绘制在 ChartView 的真实可见区域中。
例如:
放大时,我调用图表的“zoomin”方法:
但是该行会“超出视图的可见区域”,如下所示:
所以,我调用了图表的滚动方法:
但它显然不能应用在我的产品程序中,因为:
- 我不想多次“重绘”,因为我相信在对axisY->setRange和chart->zoom、chart->scroll等的任何调用之后,图表都会被重绘……
- 我应该如何找出axisY->setRange的参数来调整它?我查看了 QLineSeries/QChart/QValue/QChartView 的成员,但没有找到计算 Y 轴新最大值/最小值的方法。
我相信一定有一种方法可以解决我的问题,但我不知道。谢谢!对不起我的英语不好。
python - 使用 Qt Designer 时显示 PySide2 QCharts
我在这里遇到了与问题类似的问题:How to insert QChartView in form with Qt Designer?
所以我在 Qt Designer 中创建了我的 UI 的 MainWindow,我试图让一个QtChart
显示在我窗口的一个选项卡中。我正在将 .ui 文件导入 python 程序,到目前为止,我可以让主窗口正常显示,但不能显示图表。我花了大部分时间尝试按照上面答案中列出的说明进行操作,但到目前为止,我还无法让我的提升小部件正确导入到我的主程序中。我一直想知道是否部分原因是我正在尝试在 Qt 的 python 版本(即 PySide2)而不是 C++ 版本中执行此操作,这个答案可能是为之编写的。
我尝试使用 aQWidget
和推荐QGraphicsView
的作为我的基础来提升我QChartView
的 to,但到目前为止,每次尝试都会给我一个错误,上面写着:
"QFormBuilder was unable to create a custom widget of the class 'QChartView'; defaulting to base class 'QWidget'."
我做错了什么?
像链接的问题/答案状态一样,我将提升的小部件设置为“提升的类名称”QChartView
和“头文件”为QtCHarts
. 下面是我的 Python 程序的基本代码(忽略一开始我奇怪的导入,因为这是我正在处理的一个单独问题,除非我以这种方式格式化它们,否则我的程序将找不到类导入。)
任何帮助将不胜感激!谢谢!
[编辑]:这是我根据要求加载的 .ui 文件代码。这不是完整的文件,因为原始文件太长而无法发布,但应该足以理解这个想法:
c++ - QAbstractSeries 信号被点击,因为类型是 QLineSeries
有没有办法将 QAbstractSeries 连接到点击信号,因为 QAbstractSeries 的类型是 QLineSeries?
我可以执行以下操作:
但是如果我在另一个类中定义了系列,我只能通过
我无法通过
因为 QAbstractSeries 没有“点击”信号。但我可以通过
但现在我不知道如何处理与这些信息的联系。还是有另一种方法可以将系列作为 QLineSeries 从我的图表中删除?
qt - 如何设置 QChart 纵横比
我正在尝试实现一种算法来保持 QChart 纵横比。这是一种工作,但我想知道是否有人有更简单的解决方案。
下面是发生在调整大小事件上的代码
qt - 带有 DateTimeAxis 的 QML ChartView 无法绘制秒数
我试图ChartView
用 X 轴来展示hh:mm
我正在使用的东西DateTimeAxis
。
根据DateTimeAxis
我们需要提供最小值和最大值作为 JavaScriptDate()
对象。
我想让 hh:mm 介于00:00
to之间,05:00
所以我使用下面的代码。
但是我收到的 X 轴时间以秒为单位,而不是纪元秒。
例如,我以秒为单位收到 X 轴时间:[400, 5000, 60, 9000, 10000]
我不知道如何在 X 轴上绘制这些我试图附加spline1
为 X, Y 但没有运气。
当我在图表上绘制这些秒数时,我看不到折线图。
我需要将秒数转换为纪元吗?
c++ - QML ChartView:mapToValue 不是很准确?
我有一个 chartView,它有一些随机值并且工作良好。
在这个图表视图中,我通过一个简单的文本显示了鼠标位置映射到 Axis 上的值。但它似乎有一些不精确的值,如图所示:
mouseX 和 mouseY 位置与 Axis 不完全匹配!: 请看这张图
mapToValue 有问题吗?
感谢您的任何意见和帮助。
编辑: 我稍微更改了代码以显示确切的问题。
qt - 具有固定刻度锚的 QML DateTimeAxis
我正在使用 QML DateTimeAxis for X 轴来显示曲线。Y 轴是一个ValueAxis并显示我的信号的电压。现在我将滴答计数设置为 5,范围为 1 分钟。所以每 15 秒是一个滴答声
0:00、0:15、0:30、0:45、1:00
当时间继续,测量时间(X 轴)达到 1 分钟时,图表开始向右平滑滚动。但是刻度线停留在 x 位置。因此,在 1:06 分钟后,最小值为 0:06,最大值为 1:06 ......没关系。但是现在的蜱虫
0:06, 0:21, 0:36, 0:51, 1:06
我希望他们留在
0:15、0:30、0:45、1:00
下一个刻度应该在 1:15
为此,我向我的DateTimeAxis添加了一个函数updateTicks()并将其称为onRangeChanged。在这个函数中,我使用 mapToPosition 计算刻度的 x 位置,并将薄矩形添加到该位置的ChartView。
但是有更好的方法吗?
这是我写的部分代码: