在 Qt C++的项目中使用 QML 会调用 JS 渲染吗?会影响程序响应速度吗?

2022-03-29 22:09:55 +08:00
 rv54ntjwfm3ug8

想写很炫的 UI ,V 友们说用 QML 写更方便。

1503 次点击
所在节点    程序员
8 条回复
enki0423
2022-03-29 22:13:40 +08:00
渲染咋可能是 js ,build 之后肯定还是 cpp 代码
ian19znj
2022-03-29 22:43:00 +08:00
@enki0423 据我所知,QML 里面的逻辑是直接用 JS 语言写的,并不会转成 CPP 。
ian19znj
2022-03-29 22:45:16 +08:00
https://doc.qt.io/qt-5/qtqml-javascript-hostenvironment.html

这里讲的很清楚
Like a browser or server-side JavaScript environment, the QML runtime implements the ECMAScript Language Specification standard. This provides access to all of the built-in types and functions defined by the standard, such as Object, Array, and Math. The QML runtime implements the 7th edition of the standard.
enki0423
2022-03-29 23:02:16 +08:00
只是 implement 这个 standard 啊,你可以用 js+css 的方式写界面,并不是说 build 之后用 js 跑,如果是这样 qml 还有什么必要?直接上 qtwebengine 不就好了?
duke807
2022-03-29 23:12:24 +08:00
@enki0423 你最後說的很對,所以更多的人選擇用 h5 ,而不用 qml
enki0423
2022-03-30 00:28:05 +08:00
@duke807 我以前写 qt 的,但是现在没有特殊情况我都用 react
missdeer
2022-03-30 09:30:57 +08:00
@ian19znj 你的理解不对,这里说的是 QML 内建有一个 JS 解释器实现,但没说里面的逻辑是用 JS 实现的,而是让用户可以用 JS 写逻辑,当然用户也可以用 C++写逻辑。
然后 Qt 有个 Qt Quick Compiler ,只要在.pro 里加个选项就会自动把打包到 qrc 里的 qml 文件和 js 文件都编译成中间语言,甚至还能编译成 C++。
nonwill
2022-03-30 10:51:21 +08:00
绝知此事要躬行

问的不够累嘛,拜托,看官方的 Help 或 assistant 文档是对 OP 主的最佳帮助

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/843723

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX