Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt绘图_C++_Qt_User Interface_Plot - Fatal编程技术网

C++ Qt绘图

C++ Qt绘图,c++,qt,user-interface,plot,C++,Qt,User Interface,Plot,我需要在我的应用程序中实现一些类似或的情节, 它甚至可以是类似的东西 我在Qt网站上进行了搜索,没有任何进展,我看到了Qwt包,但没有类似的内容 有什么想法吗?Qt不支持开箱即用的绘图 最基本的解决方案是使用。只需使用各种项目渲染绘图 除此之外,你可以跟随。它包含一些指向绘图框架的指针,但我不知道它们有多有用,也不知道它们在Qt4.x中是否仍然受支持。为此,我使用了Qwt。诀窍是使用一个步长函数(参见本文最后一个示例),将数据移动0.5,使条形图居中于刻度。下面是一个启用alpha混合和抗锯齿的

我需要在我的应用程序中实现一些类似或的情节, 它甚至可以是类似的东西

我在Qt网站上进行了搜索,没有任何进展,我看到了Qwt包,但没有类似的内容


有什么想法吗?

Qt不支持开箱即用的绘图

最基本的解决方案是使用。只需使用各种项目渲染绘图


除此之外,你可以跟随。它包含一些指向绘图框架的指针,但我不知道它们有多有用,也不知道它们在Qt4.x中是否仍然受支持。

为此,我使用了
Qwt
。诀窍是使用一个步长函数(参见本文最后一个示例),将数据移动0.5,使条形图居中于刻度。下面是一个启用alpha混合和抗锯齿的示例:。 希望你能做得更好;-)

我强烈推荐

Qwt是一个成熟的、有良好文档记录的库,可以说,它是在Qt中实现绘图和其他显示和控制小部件的标准解决方案


如果你需要3D绘图,尝试.< /P> < P>作为Qwt的替代物,你也可以考虑哪一个是一个更简单的选项。< /P> < P>我爱QCustomPlot,这是Qt C++库。它专注于制作美观、出版物质量高的2D绘图、图形和图表,并具有实时可视化应用程序的高性能。您可以在这里找到它:

QCustomPlot
非常容易入门,您可以使用很多笛卡尔绘图类型。话虽如此,如果您打算同时绘制大型时间序列,从性能角度来看,它不如其他人所说的那么好。它在内部使用
QMap
来存储数据,这意味着对于填充时插入或移除的每个数据点,将有一个内存分配/释放来将数据点添加到映射。有关更多信息,请参阅


我不喜欢的另一件事是,即使对于简单的绘图,它也在内部使用一个struct
QCPData
,当您通常需要两个值(
x
y
)时,它会存储6个双值。也就是说,它将显示时间序列所需的内存量增加了三倍。

Qt 5.6现在Qt Charts 2.1,它支持条形图(以及其他7种类型)。

怎么样?现在似乎是更好的选择。QCustomPlot允许GPL或商业模式。Qwt使用LGPL许可证。这是你必须根据你正在做的项目来考虑的问题。它在开源发布中是可用的吗?我似乎不能使用
图表
模块。@VioletGiraffe-它是可用的,但不包括在5.6的开源发行版中。(“开源用户可以从源代码构建模块。”)有关使用开源构建模块的帮助,请参阅此线程:下面是一个使用源代码在QGraphicsView中轻松绘制点的示例(11行代码)。一开始它看起来不像是开箱即用,但这只是因为图形视图框架比标准画师强大得多。