问题标签 [qcustomplot]

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.

0 投票
3 回答
622 浏览

c++ - 在 QSplitter 中设置最小固定大小的 QCustomPlot 条形图

QCustomPlot用来绘制条形图。有两个这样的条形图水平排列在a内QSplitter(可以拖动)。在水平拖动拆分器时,条形图会调整大小并缩放到轴标签开始重叠的点。我有一个QWidget包含QScrollArea最终包含情节的父母。此小部件已添加到QSplitter.

现有行为:

在水平拖动拆分器时,条形图水平扩展/收缩,直到轴刻度标签重叠,最终以非常小的宽度值出现,水平滚动条出现,这是无用的。调整窗口大小也是如此。

要求的行为

但是,我寻求不同的行为。我希望条形图可以水平滚动,而不需要在拖动拆分器时调整它们的大小,即向左/右拖动拆分器应该显示更多/更少的图表,而不是调整它们的大小

查询

  1. 如何指定条形图应具有最小大小并根据 x 轴上的刻度数从该大小扩展?
  2. 如何阻止情节自动扩大/缩小?

到目前为止我尝试过的

我尝试为情节设置最小尺寸,但它不起作用。我还尝试将拆分器的拉伸因子指定为 0,但这也没有效果,即在滚动条出现得太晚的两种情况下,行为都是自动调整条形图的大小。

0 投票
0 回答
215 浏览

c++ - 将带有 qcustomplots 的多个小部件添加到窗口时出现 Qt,错误(malloc)

我正在尝试制作一个包含多个小部件的小部件,每个小部件都有一个 QCustomplot 和一些绘图数据(QLabel 和 QPushbuttons)。此小部件从带有parent=0. 我用一个函数添加了子小部件,但如果它被使用超过一次,它会抛出一个错误:

malloc.c:3757: _int_malloc: 断言 `(unsigned long) (size) >= (unsigned long) (nb)' 失败。

所以继承人的代码,这导致了这一点:

打开小部件,它应该包含子小部件:

Zeitdatenfenster 在 MainWindow 类头中: Plotfenster* Zeitdatenfenster;

构造函数:

getZeitData( ...)-功能:

geplotteteDatenInhaltstd::vector<Ploteigenschaften*>, addPlot()是创建子小部件的函数。Ploteigenschaften只是一个类,它存储作为 plottet 的数据和更改它的函数。(将两个 Qvector 添加到 qcustomplot 中)

添加绘图功能:

Plot 是包含构造函数的子窗口:

程序在 QCustomplot 构造函数处崩溃。在 Datensetzten 中指定了情节:

很抱歉发了这么长的帖子,但我不知道错误在哪里,很高兴有一些想法。

谢谢!

0 投票
1 回答
380 浏览

qt - when using QCustomPlot in qt the graph is drawn only when window is resized,why?

when the code to draw graph is placed in constructor the graph the graph is drawn fine , but while using the same code in slot of pushButton to draw graph the graph is only drawn when window size is changed

0 投票
1 回答
125 浏览

c++ - 如何根据用户输入动态更改任何项目的位置?

如何访问在其他函数的 MainWindow 构造函数中声明和初始化的数据?ui->customPlot 上是否有可以帮助我的方法?

我的 Qt MainWindow 构造函数中有以下代码:

我希望用户能够将数字输入 2x1 QTableWidget 并更改箭头指向的位置。例如:如果用户在表格中输入 2,1,箭头会移动并从 0,0 指向 2,1。

据我所知,这是:

(table1 是我的 QTableWidget 的名称。)


我尝试将 QCPItemLine* vec1 放在 mainwindow.h 中,但无法弄清楚如何解决“没有适当的默认构造函数可用”错误,因为 QCPItemLine 构造函数依赖于仅在 ui->setupUI(this) 之后可用的数据,在默认构造函数列表之后调用。

我还尝试在 on_table1_cellChanged 函数中调用 QCPItemLine* vec1 = ui->customPlot->item(),但收到此错误:“无法从 'QCPAbstractItem *' 转换为 'QCPItemLine *'”。另外我知道这种方式是有风险的,因为我不能总是依赖 vec1 作为添加到我的 customPlot 中的最新项目。

0 投票
1 回答
703 浏览

c++ - QCustomPlot 添加 QCustomItemText

我正在尝试将文本项添加到QCustomPlot小部件上。QCPItemText构造函数将指向小部件的指针QCustomPlot作为参数。

QCPItemText::QCPItemText ( QCustomPlot * parentPlot)

创建QCPItemText对象后,可以使用成员函数将其添加到小部件中QCustomPlot::addItem()。但我的问题是程序无法编译。它说没有调用成员函数QCustomPlot::addItem()。但是这个例子似乎是这样做的。我很困惑。

这是我的代码的一部分;

WheredynamicWidgetHash是一个QHash对象,它QCustomPlot *为每个给定的 存储一个key

当我尝试使用此行时发生错误

currentWidget->addIem(itemText);

0 投票
1 回答
2335 浏览

c++ - QCustomPlot 海量数据绘图

我正在尝试使用 qcustomplot 类在我的 Qt Gui 程序上绘制一些串行数据。当我尝试绘制 100 个数据/秒的低采样频率数据时,我没有遇到任何问题。该图非常酷,并且可以流畅地绘制数据。但是在 1000 数据/秒这样的高采样率下,绘图仪成为串行读取功能的瓶颈。它减慢了串行速度,距离设备有 4-5 秒的巨大延迟。直截了当,绘图仪无法达到数据流速度。那么,是否有任何我不知道的常见问题或任何建议?

我认为这些场景,

1-将整个程序分配给 2 或 3 个线程。例如,串行部分在一个线程中运行,绘图部分在另一个线程中运行,并且两个线程与 QSemaphore 通信

qcustom 绘图的 2-fps 是有限的。但应该有一个解决方案,因为 NI LABVIEW 可以毫无延迟地绘制多达 2k 的数据

3-在usb协议中设计一个新的虚拟串行设备。现在,我正在使用 ft232rl 串口转 USB 转换器。

4-更改编程语言。C# 或 java 中实时绘图的情况和类支持是什么?(我知道这就像一个孩子说的,但这是用其他语言体验的借口)

我的串口设备发送数据功能(它是用于实验的 foo 设备,没有严重的编码)简单地说:

Qt程序读取功能是:

而 qcustom 绘图设置功能是:

最后是绘图功能:

0 投票
1 回答
585 浏览

c++ - QCPAxisTickerTime 错误

我正在使用 QtcustomPlot,但是当我尝试通过 QCPAxisTickerTime 类将 Y 轴更改为日期时间轴时,出现此错误。我包括 QSharedPointer 库。大家都知道吗,请帮助我。

我正在使用 Qt5.8.0 和 QCustomPlot 版本 2.0.0 beta。

太感谢了。

0 投票
1 回答
748 浏览

qt - 在 qcustomplot 中隐藏/显示多个图形

我正在为 Qt 中的几个 Arduino 传感器制作数据记录器。问题是我想将数据记录在 3 个不同的图表中,每个图表都有一个特定的比例,然后我将选择要显示的图表(一次只显示 3 个图表中的一个)。

我试过这样的事情:

然后,在 RadioButtonclicked事件的插槽调用中,我做了:

而另一个 RadioButton 则相反。但是该图似乎保留了创建的最后一个图的轴。因此,如果我尝试查看sensorXGraph,数据将相应更改,但 y 轴范围将是sensorYGraph.

我还尝试为每个图制作一个 QCPAxis,但它开始变得一团糟,因为我还必须为每个图制作 QCPAxisRect,结果比第一次试验更差。

如何正确地从一个图形更改为另一个图形?

先感谢您。

0 投票
1 回答
313 浏览

qt - 在 ScrollArea 中嵌入 QCustomPlot

我对 qcustomplot 和 qt 相当陌生(从 pyqt+matplotlib 切换以进行性能升级/学习)。我一直在研究 qcustomplot 的教程,但所有内容都围绕着绘制一个将 Qwidget 提升为 QCustomPlot 的 UI,这很好,但我猜如果我想要多个具有固定/可查看的 Qcustomplot / 子图,则需要手动绘制尺寸。到目前为止,我一直在尝试创建一个具有多轴的自定义图,以查看轴是否在滚动区域内改变大小,但到目前为止还没有运气。任何帮助,将不胜感激。

头文件

cpp如下:

和用户界面

0 投票
0 回答
252 浏览

qt - QCustomPlot 的事件过滤器

我在为其小部件使用 Qcustomplot 的滚动区域中注册启动事件时遇到问题。我尝试安装一个事件过滤器,但它似乎在其他滚动区域中工作,除了它自己的滚动区域。有关修复此/注册或过滤 qcustomplot/scrollarea 中的事件的任何建议?附上我的cpp和ui...

和用户界面