什么是QCustomPlot的优势/劣势,相对于QWT?(What are the advantag

2019-07-02 14:57发布

我使用的QWT现在两年。 我喜欢它的面向对象类,这使得它很容易适应的情节和功能。 这些天QCustomPlot正变得越来越流行,并与QWT竞争。 当然,我也比较的API。 不过,我很感兴趣,从两个库经验的用户提供的证词。 什么是方便? 什么不是? 是否有缺陷?

Answer 1:

我不会把自己的“经验”,为我所用QWT只有几个月,而QCustomPlot几个星期。 话虽这么说,我的印象是:

  • QCustomPlot似乎目前更加积极地发展。 最后一个版本是2012年8月(而QWT的最后一个版本的历史可以追溯到2011年)。 主观上,它的界面似乎更“对齐”的使用Qt框架。
  • QWT,在另一方面,似乎更加成熟和特性吧。 例如,QCustomPlot的当前版本具有用于设置轴矩形的颜色背景没有直接的方式(仅设置背景用户提供的象素图被支撑)。 另一个例子 - QWT具有特殊的类和方法,以方便绘图和一个非常大的数量的点缩放时的曲线。 我发现没有像在QCustomPlot。

编辑:QCustomPlot的作者是知道缺少的功能设置绘图背景,并承诺将其添加到即将发布。

还有QCustomPlot和QWT的另一个重要区别 - 的许可。 - QWT是LGPL,所以你可以将它链接到非GPL项目。 QCustomPlot是GPL第3节,很多人(包括我自己)找到WAY过于严格。 QCustomPlot笔者邀请,如果你想LGPL许可与他联系。

EDIT2(2013 3月25日):QWT分支的新版本5. *和6 *出现在十一月,其中撤销本级“更加积极地开发”的优势QCustomplot的



Answer 2:

我不能比较这两个库,因为我只用QCustomPlot(一年了),但我相信我的评论可能是其他有用的不过。

QCustomPlot的优点

  • 在Gitorious公开速效,
  • 生活的用户群愿意帮忙(包括作者日期本人),
  • 开放的LGPL许可(以换取捐赠,在我的情况),
  • 很干净,简洁的界面,
  • 很容易发现一个bug,如果存在的话(我的错误修正比一行很少长)
  • 易于扩展;
  • 很容易被破解成任何你想粉碎了笛卡尔绘图库,
  • 良好的文档,
  • 可在1 h和一个.cpp文件的浓缩形式 - 方便快速整合或特定目的建造一个widgeters,
  • 非常不错的表现(在我所有的用例),
  • 很明显,笔者喜欢漂亮的代码,并且能够产生一个,
  • 非常深思熟虑的路线图(对地久天长的时间来)。

QCustomPlot的缺点

  • 非常严格的笛卡尔(读:没有饼图),
  • 在我的情况下花了一些时间来获得重要万物必要的抓地力(如果喜欢落实质量相当的扩展的基础),
  • 也许有一点缓慢的演变(许多其他单 -man项目),
  • 只有在使用主线程(即当你需要生成,比如说,多线程的Web服务器的图片,你需要在主线程中运行这个库,这意味着什么为您实现)。

如果需要LGPL上下的牌照,有可能不是一个免费的选择(取决于考虑笔者的)。 鉴于库的质量和可用性,捐赠我公司以换取LGPL许可协议并没有过分的了。



Answer 3:

当绘制大量的点。 和用户集中点到整个情节。 即(X,Y轴被完全覆盖像素)

(点计数=下面的计算给出)

同时拖动情节:

  • QWT给了QCustomPlot的方式很多更好的性能。
  • QCustomPlot拖/型重构滞后的方式不止 QWT,这是不好的UI。
  • QWT滞后是可忽略的并且是可以接受的。
  • QWT需要较少的处理。

我注意到的是:在拖动时,仅QWT拖动绘图区和下降后的区域绘制。 而QCustomPlot尝试下探之前重新绘制。 (注意务必但是这可能帮助QCustomPlot球员变得更好。)


此外,QWT提供了可以在外部管理的原始缓冲区的选项。 我能够减少(QcustomPlot)150MB至小于(QWT)40MB。 保持,

QCustomPlot力用户分配内存以X轴(errorbar +,errorbar-),Y轴(errorbar +,errorbar-)(2 * 2 *的sizeof(双))存储器被浪费了3 * 2 *的sizeof(双)的即32字节出48byte的是,其中仅需要QWT为16字节一个样品(对于x,和y)废物(对于1sample)。

AFAI了解,errorbar可以QWT实现也

  • 相等数目的点(96KiloSamples /秒*10秒缓冲= 96 * 1000 * 10 =〜1M)
  • 在QCustomPlot抗锯齿禁用和启用 QWT
  • 同样的重新绘制算法。 (在从设备和火重制时间相同的时间间隔取数据之后)

即使在消除锯齿启用,QWT是方式表现要好得多。


笔记:

  • QWT是成熟的,有效的。
  • QCustomPLot提供更好的外表和感觉。 (QWT相比略好。)

QWT可以只是改变它的背景为白色后作出更加好看,启用抗锯齿和网格

测试在:

  • QWT 6.1.0编译QT5
  • QCustomPLot 1.2.1编译QT5
  • Qt5.2.1
  • Linux的的localhost.localdomain 3.13.11-100.fc19.x86_64#1 SMP周三4月23日二十时10分57秒UTC 2014 x86_64的x86_64的x86_64的GNU / Linux的
  • i3-3120M CPU @ 2.50GHz×4

同时,QCustomPlot上[执行相同的Qt4。

这些都是我的发现,可能与条件,条件而有所不同。

我有切换回QWT。 在选择希望这帮助别人。 :)


次要:

  • 精读QCustomPLot需要单独的qmake要下载的文件。 (令人沮丧的初学者)
  • CON QWT已被编译多个文件。
  • 临QCUstomPlot只有两个文件:源文件和头
  • 刀豆无论信道具有信道IRC(ATLEAST不是Freenode的)
  • 精读QCustomPlot具有推入一个可执行的多个实例。
  • 临QWT拥有分布在多个可执行文件的例子很多
  • 精读QCustomPlot不要有任何QtCreator插件
  • CON QCustomPlot不提供回购(ATLEAST不是在Fedora 19)
  • 临QWT有很多其他东西的
  • CON QWT是笨重的:P
  • 临QWT支持的CMake
  • 临QWT是更灵活(afaif)

如果我错了一些看法,请大家指正。



Answer 4:

优点:

  • 轻松获得IMO开始(API是直观的,有据可查)
  • 良好的打印质量和平移和缩放时,响应速度快。
  • 单身的.h / .cpp文件(即不需要参考编译库比QTS等)

缺点:

  • GPL(不LGPL)
  • 在内部使用存储6个的数据结构double S代表每个数据点,即使你只需要XY
  • 在内部它采用了QMap来存储数据点,让他们排序。 非常有效的平移和缩放,但是填充速度很慢,当样本数量大(例如百万个数据点)


文章来源: What are the advantages/disadvantages of QCustomPlot, compared to Qwt?