【问题标题】:Making plot in Qt在Qt中制作情节
【发布时间】:2010-12-02 06:12:34
【问题描述】:

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

我在 Qt 网站上进行了搜索,没有任何进展,我看到了 Qwt 包,但那里没有类似的东西。

有什么想法吗?

【问题讨论】:

  • 这里有一个answer 的源代码,可以很容易地在 QGraphicsView 中绘制点(11 行代码)。一开始它似乎不是开箱即用的,但这只是因为 Graphics View Framework 比标准画家强大得多。

标签: c++ qt user-interface plot


【解决方案1】:

我喜欢 QCustomPlot,它是一个 Qt C++ 库。它专注于制作美观、出版质量的 2D 绘图、图形和图表,并且对于实时可视化应用程序也具有高性能。你可以在这里得到它:http://www.qcustomplot.com/

【讨论】:

    【解决方案2】:

    我强烈推荐Qwt

    Qwt 是一个成熟的、文档齐全的库,我认为可以公平地说,它是在 Qt 中实现绘图和其他显示和控制小部件的标准解决方案。

    如果您需要 3D 绘图,请尝试 QwtPlot3D

    【讨论】:

    • QCustomPlot 怎么样?现在似乎是更好的选择。
    • QCustomPlot 允许 GPL 或商业。 Qwt 使用 LGPL 许可证。这是您必须根据您正在从事的项目考虑的事情。
    【解决方案3】:

    我为此使用Qwt。诀窍是使用阶跃函数(参见 link 的最后一个示例),并将数据移动 0.5,以便条形图以刻度为中心。以下是启用 alpha 混合和抗锯齿功能的示例:my histogram。 希望,你会做得更好;-)

    【讨论】:

      【解决方案4】:

      作为 Qwt 的替代方案,您也可以考虑使用 qt-plotting-widget,这可能是一个更简单的选择。

      【讨论】:

        【解决方案5】:

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

        【讨论】:

        • 它在开源发行版中可用吗?我似乎无法使用charts 模块。
        • @VioletGiraffe - 它可用,但不包含在 5.6 的开源发行版中。 (“开源用户可以从源代码构建模块。”)有关使用开源构建的一些帮助,请参阅此线程:forum.qt.io/topic/66946/how-to-build-qt-charts-2-1-on-windows-7
        【解决方案6】:

        Qt 不支持开箱即用的绘图。

        最基本的解决方案是使用QGraphicsView。只需使用各种项目渲染您的情节。

        除此之外,您可以关注this thread。它包含一些指向绘图框架的指针,但我不知道它们有多大用处,也不知道 Qt 4.x 是否仍然支持它们。

        【讨论】:

          【解决方案7】:

          QCustomPlot 非常容易上手,并且有很多笛卡尔绘图类型可供您使用。话虽如此,就性能而言,如果您打算一次绘制大型时间序列,则不如其他人所说的那么好。它在内部使用QMap 来存储数据,这意味着对于您在填充时插入或删除的每个数据点,都会有一次内存分配/释放以将数据点添加到地图中。请参阅this post 了解更多信息。

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

          【讨论】:

            猜你喜欢
            • 2022-01-14
            • 2019-06-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多