QtQuick 2.0 与 QGraphicsView (QPainter)

Woj*_*ilo 5 qt pyqt qpainter pyside qt-quick

我现在正在用 Python (PyQt / PySide) 编写一个应用程序,它应该可视化并且应该可以编辑复杂的数据流图(如搅拌机中的节点)。另外,我希望这些节点显示 opengl 3D 对象(小型 opengl 场景,如节点上的按钮)、图像、控件等。 GUI 也会很复杂 - 它允许细分面板并允许在每个面板中打开一个上下文(就像在 Eclipse 或 Visual Studio 中一样)。

我现在正在学习QtQuick 2.0,我已经阅读了 Qt 5 中的绘画概述。我想知道使用QtQuickover的真正好处是什么QPainterQtQucik 2.0不再QGraphicsView用作其后端(它直接使用OpenGL上下文)

在您可以使用的每项技术中OpenGL。在每个中,您都可以绘制自定义外观的按钮和小部件(如节点、它们的连接等)(您甚至可以QPainter使用鼠标绘制它们并自己处理鼠标)。

当然qml是声明性的并且可以优化OpenGL调用,但这真的很重要吗?我一直在寻找QPainter( QGraphicsView)之间的任何基准点,QtQuick 2.0但没有发现任何有趣的东西。

所以问题是:

  1. 真的QtQuick是“未来”技术吗?如果可能,我应该使用它吗?我将来会从中受益吗?或者是简单的做同样的事情像的“其他”的方式QPainterQGraphicsViewQWidgets
  2. 的可能性QtQuick 2.0真的高于PySide/PyQt吗?
  3. QtQuick更适合开发这种应用程序还是我应该坚持PySide/PyQTQPainter

Fra*_*eld 1

如果您想将 UI 直接嵌入到其他 OpenGL 元素中,特别是当您希望在有限的硬件上实现平滑过渡、动画等时,OpenGL 就显得尤为重要。

1), 2) 很难回答——这要看情况。对于具有类似 Eclipse 的复杂 UI 的桌面应用程序,在 QtQuick 中完成所有操作实际上并不可行。我会留在那里使用小部件。在 QtQuick 中重新实现 Eclipse 将是一项艰巨的任务,最终会得到一个几乎不可用、与桌面无法很好融合的 UI。如果您想要动画的自定义 UI,那么我会选择 QtQuick。它是适合这项工作的工具,在 QWidget/plain QGraphicsView 中模仿它会很痛苦。