QtQuick 2.0与QGraphicsView(QPaint)
我现在正在用Python编写一个应用程序(PyQt/PySide),它应该是可视化的,并且应该能够编辑复杂的数据流图(比如blender中的节点)。另外,我希望这些节点显示opengl 3D对象(小型opengl场景,如节点上的按钮)、图像、控件等。 GUI也将是复杂的-它将允许细分为面板,并允许在每个面板中打开上下文(如Eclipse或Visual Studio) 我现在正在学习QtQuick 2.0,我已经阅读了。我想知道使用QtQuick 2.0与QGraphicsView(QPaint),qt,pyqt,pyside,qpainter,qt-quick,Qt,Pyqt,Pyside,Qpainter,Qt Quick,我现在正在用Python编写一个应用程序(PyQt/PySide),它应该是可视化的,并且应该能够编辑复杂的数据流图(比如blender中的节点)。另外,我希望这些节点显示opengl 3D对象(小型opengl场景,如节点上的按钮)、图像、控件等。 GUI也将是复杂的-它将允许细分为面板,并允许在每个面板中打开上下文(如Eclipse或Visual Studio) 我现在正在学习QtQuick 2.0,我已经阅读了。我想知道使用QtQuick而不是QPainter的真正好处是什么。 qtquc
QtQuick
而不是QPainter
的真正好处是什么。
qtqucik2.0
不再使用QGraphicsView
作为其后端(它直接使用OpenGL
上下文)
在每种技术中,您都可以使用OpenGL
。在每个窗口中,您可以绘制自定义外观的按钮和小部件(如节点、它们的连接等)(您甚至可以使用QPainter
绘制它们,并自己处理鼠标)
当然,qml
是声明性的,可以优化OpenGL
调用,但这真的很重要吗?我在QPainter
(QGraphicsView
)和QtQuick 2.0
之间搜索了很长时间,但没有发现任何有趣的地方
因此,问题是:
QPainter
和QWidgets
完成相同的任务QtQuick 2.0
的可能性真的高于PySide
/PyQt
QtQuick
更适合开发此类应用程序,还是我应该坚持使用PySide
/PyQT
和QPainter
如果您想将UI直接嵌入其他OpenGL元素,尤其是在有限硬件上需要平滑过渡、动画等时,OpenGL最重要
1) 很难回答,这要看情况而定。对于一个具有复杂的类似eclipse的UI的桌面应用程序来说,在QtQuick中做任何事情都是不可行的。我会留在那里。在QtQuick中重新实现Eclipse将是一项艰巨的任务,最终将导致难以使用的UI无法与桌面很好地融合。如果你想要动画,自定义用户界面,那么我会很快。这是一个适合工作的工具,在QWidget/plain QGraphicsView中模仿它会很痛苦。A1。QtQuick是实现流畅高级UI的现代技术。它使用场景图作为后端,这是以高性能和非常智能的方式利用硬件加速的最新技术。如果目标机器支持OpenGL ES 2,则场景图在QPaint、QGraphicsView和场景图之间具有最佳性能。
它非常高效,但您需要注意一些性能提示,以尽可能保持高性能。
它自然适用于MVC/MVC模式,但选择/设计一个高效和合适的模型来集成和交互模型/控制器/视图需要经验) A2。你的问题错了!QtQuick是Qt的一部分,而不是与整个Qt平行的新事物 A3。在我的经验中,在一个大型复杂的应用程序中,你需要小心选择一个集成C++和QML的好方法(换句话说,从C++控制UI)。 您还可以使用QPaint或QGraphicView或QOpenGL或QQuickItem创建自定义元素,并将其与基于QtQuick的UI集成。
请记住,QtQuick的静态构建现在是不可能的!(阿法克)
最后一句话,我强烈建议你们在现实世界中学习和测试它。因为它在Qt框架中发展迅速,在我看来,它是未来的趋势。谢谢你,你能详细介绍一下“在
QWidget
/plainQGraphicsView
中模仿它会很痛苦”吗?为什么我不能简单地用QGraphicsView
绘制图形,然后设置动画。使用PySide
/PyQt
在我看来应该很简单。我错了吗?另外,你能告诉我为什么QGraphicsView
在有限的硬件上使用OpenGL不如QtQuick 2.0
?它们之间的性能差异如此之大吗?QtQuick 2:QQ1的主要区别在于它使用了场景图:“痛苦”部分主要指的是小部件。在大多数用例中,如果将普通图形视图用于具有用户交互的“普通”UI控件,那么它将变得更加复杂:锚定交互上的动画转换,即QML是为其制作的。由于QQ1项目可以通过QDeclarativeItem轻松嵌入到Graphicscene/视图中,因此可以自由组合这些项目,因此这不是一个非此即彼的决定。我知道它使用scenegraph。我想我已经阅读了所有与QtQuick有关的内容。与QGraphicsView
相比,此场景图非常流行,因此它是在有限硬件上运行的唯一选项?我理解声明性语言为我们提供了工具,可以通过锚定等快速制作动画,但编写自己的类和函数会给我带来类似的效果,不是吗?(我很抱歉提出如此深入的问题——我正试图深刻理解这些差异)