gpt4 book ai didi

c++ - Qt 与 QML 语言相关性

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:01 25 4
gpt4 key购买 nike

所以,我是 Qt 的新手,我的目的是熟悉 Qt 图形。然而,互联网上的大多数指南建议在处理图形时使用 QML 而不是 Qt C++。

这是我的问题:Qt C++ 和 QML 有什么区别?QML 给了我们什么,而 Qt C++ 没有?

最佳答案

界面技术

这实际上与其说是 QML 与 C++ 的问题,不如说是 Qt 使用何种 UI 技术的问题:

  • QtWidgets(用C++编写的代码)
  • QtQuick(使用 QML/JS 编写的代码)
  • HTML5(通过 WebEngine,嵌入到小部件或 QtQuick 项目中)
  • OpenGL(嵌入到小部件或 QtQuick 项目中)

撇开 HTML5 和 OpenGL,QtWidgets 与 QtQuick 的问题已经在其他地方讨论过,例如 Qt Quick vs. Qt Widget在这 Qt DevDays 2014 presentation .

我的个人意见:将 QtWidgets 用于传统桌面应用程序,将 QtQuick 用于移动和嵌入式(带触摸屏的设备),除非您有充分的理由不这样做。 QtWidgets 对传统桌面控件有更好、更成熟的支持,而 QtQuick 更适合动画和完全自定义样式。

在桌面上使用 QtQuick 的一个原因是当您需要大量自定义动画和样式时,代价是要与传统的桌面控件(如工具栏、菜单栏、拖放等)进行更多的斗争。

语言

选择 qtwidgets时,语言总是C++(嗯,除非您使用Python绑定(bind))。虽然您可以使用 Qt Designer tool以可视化方式创建 UI,最后将其编译为 C++。

选择 QtQuick 时,UI 部分的语言将为 QML 和 JavaScript。然而,在任何中等规模的 QtQuick 应用程序中,您有时也会有一个 C++ 部分 - 例如与其他 C 和 C++ 库接口(interface),用于没有关联的 JavaScript API 的操作,或者只是为了更快和更易于维护的代码比JS。可以从 QML 访问 C++ 类和对象,检查 the documentation了解更多详情。

关于c++ - Qt 与 QML 语言相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50140452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com