我在Qt的快速初学者。 我不知道的Qt这是一个QML基础。 而且我不熟悉C ++这又是对Qt和QML主要支持的语言。 我知道JS能做到在QML层本身大量的逻辑。 但是,如果我们需要与操作系统交互,那么我们必须使用一些基本语言。 由于我很舒服与Python,我正打算为“QML-JS-Python的 ”组合。
所以,我的问题:
- 对于高级应用和游戏开发是否Python的和Qt的快速做好手牵手?
- 是我的三重奏组合(QML-JS-Python)的是够用了吗?
- 我还需要学习Qt的应用程序开发从QML与Python的耦合?
- 如果是用于Qust 3,那么我应该学习完整的Qt或站立Python和QML之间的通信门代码只有那些几行?
很抱歉,如果我提出这些问题哑巴。 不过,我想借此建议和意见。
编辑:对于此组合QML-JS-Python的任何限制
提前致谢
在概念层面,他们一起去很好。 我写的,还算很好结合一切蟒蛇/ QML / JS / OpenGL的程序。 这是与Qt4.7和PySide。
如果你只是使用QML,可以最大限度地减少的Qt的,你需要暴露于(虽然,一如既往,更多的知识让你更强大)的量。 从本质上讲,一旦你有一个qdeclarativeview,你的Qt的工作除了信号/槽处理,这是PySide下完成的喜悦。 我建议你可以使用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的露出。 这意味着你可以在Python中,你会在C.我写捕获鼠标滚轮事件,以便我能偷从Flickable滚动的控件编写扩展。 这是用Python创建了一个QML元素,但我也不得不在Python加载它; 我不能完全解决如何创建,我可以从QML文档中加载扩展。 这是可能的,当然写一个C扩展是独立于主代码,所以你还是一直有这样的选择。
随着2016年4月的PySide是现在正式通过Qt的公司的支持。
官方主页是这里 。 LGPL许可是一种选择,这似乎是该项目首先创建的主要原因。