首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python与QML (Quick)很好吗?

Python与QML (Quick)很好吗?
EN

Stack Overflow用户
提问于 2013-03-14 09:55:52
回答 3查看 20.9K关注 0票数 32

我是Qt的初学者。我不知道Qt是QML的基础。而且,我也不熟悉C++,这也是Qt和QML的主要支持语言。我知道JS可以在QML层本身做很多逻辑。但是,如果我们需要与操作系统交互,那么我们必须使用一些基本语言。由于我对Python很满意,所以我正在计划进行"QML-JS-Python“组合。

所以,我的问题是:

  1. 对于高级应用程序和游戏开发,Python & Qt-Quick做得很好吗?
  2. 我的组合三重奏(QML)足够好吗?
  3. 我是否需要学习Qt用于应用程序开发,以便从QML中耦合Python?
  4. 如果对Qust 3是肯定的,那么我应该学习完整的Qt,还是只学习作为Python和QML之间通信门的那几行代码呢?

抱歉,如果我在提出这些问题时很笨。但我想听取一些建议和意见。

编辑:这种组合的任何限制QML

提前谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-14 10:17:54

在概念层面上,它们很好地结合在一起。我编写了一个python/qml/js/opengl程序,它很好地结合了所有东西。这与Qt4.7和PySide有关。

如果您只是在使用QML,您可以将您需要接触的Qt的数量降到最低(不过,与往常一样,更多的知识会使您更加强大)。本质上,一旦您有了q观视图,除了信号/时隙处理之外,您的Qt工作就完成了,这是PySide下的joy。我建议您可以快速使用Python和QML,而不必过多地担心Qt方面的问题,并在必要时进行处理。

根据经验,我建议让Python和QML之间的界限在您自己的头脑中清晰。我在很大程度上将QML限制在GUI逻辑上,它做得非常好;实际上,QML处理接口如何响应输入,然后将信号发送回主程序。它的工作原理有点像在GUI和程序的其余部分之间创建一个非常基本的、缩小的界面,只发送高级别的逻辑信号(例如,发送回击,它会返回一个信号,例如“打开处理”,GUI将处理如何呈现该更改)。在我的例子中,这只是直接插入到我的MVC框架中,但是您可以按照自己的意愿来做。

所有这一切都有一个很大的警告。PySide的开发已经停滞,目前不支持Qt5及其所有的QML改进优点。关于应该如何支持它,人们已经进行了各种各样的讨论,但实际提交的代码并不多。

我相信PyQt支持Qt5,但可以作为GPL或商业授权(PySide是LGPL,因此可以与封闭源代码一起使用)。我没有PyQt的经验,除了它,和PySide大约下降的替代一个-另一个。

我好像是在说把它作为一个MVVM使用。

(任何限制问题):整个Qt是通过PySide和PyQt公开的。这意味着您可以像在C中那样用Python编写扩展,我编写了一个小部件来捕获鼠标滚动事件,这样我就可以从一个可闪烁的窗口中窃取这个滚动。这是在Python中创建的一个QML元素,尽管我还必须从Python加载它;我无法完全解决如何创建一个可以从QML文档中加载的扩展。当然,可以编写一个独立于您的主代码的C扩展,所以您仍然可以使用这个选项。

编辑:PySide2现在是一个东西,并且支持Qt5。

Edit2:从2021年起,Pyside现在被称为QT For Python,并且非常支持QT6,包括QT6。一定要记下执照的记录。

票数 31
EN

Stack Overflow用户

发布于 2016-05-07 05:22:19

截至2016年4月,PySide是由Qt公司正式支持的现在

官方主页是这里。LGPL许可是一种选择,这似乎是项目最初创建的主要原因。

票数 7
EN

Stack Overflow用户

发布于 2022-06-19 14:24:39

1.对于高级应用程序和游戏开发,Python&Qt-快速做得好吗?

无法理解为什么您会使用QT进行游戏开发,但是对于python,这可能是多余的开销。

至于“高级应用程序”,IMO将是一个很大的提升,因为您可以相对容易地创建动态内容,但是有一个警告,PySide与PySide集成得不是很好,尽管在PySide 6.3中有一个主要的优点--它没有c++那么精巧和有文档化,而且pythonic也不是非常pythonic。

2.我的组合三重奏(QML)足够好吗?

用于“高级应用”IMO no

当您从qml中榨取果汁时,您很快就会意识到您需要一些自定义项,并且您需要C++,原因有两个:

答:速度,qml属性绑定中的python是关键概念,如果您在python中有很多属性,您将付出代价。B:如前所述,python与qml的集成是不完整的。您可以在以后为您创建的c++组件创建自己的绑定,使用类似于shiboken的内容。

3.我是否需要学习Qt用于应用程序开发,以便与QML进行耦合?我应该学习完整的Qt,还是只学习作为Python之间的通信门的几行代码?

qml和qt-widget有很多共同之处,但我认为您可以从qml和qt-core开始。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15406002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档