【问题标题】:Is it possible to use QT / LIBUI in React.JS style?是否可以在 React.JS 样式中使用 QT / LIBUI?
【发布时间】:2019-11-03 16:58:02
【问题描述】:

React.JS 的一个优点是您不必关心将一个 UI 变为另一个 UI,神奇的 React DIFF 算法可以解决这个问题。

您定义您想要的 UI(一种方式 model -> UI 流),神奇的 React DIFF 算法负责将当前 UI 转换为所需的 UI。对于其他 UI 库,您通常需要手动处理这些问题并编写大量枯燥的代码,如何将当前 UI 转换为新 UI 以响应某些事件或更改。

是否可以以类似的方式使用 QT5/LIBUI? 我想我们可以称之为反应式 UI 风格,可能不完全像 React.JS 而是像 Vue.JS 或 svelte.js,榆树等

【问题讨论】:

  • 你的问题不清楚,但如果你在谈论数据绑定,QML aka Qt Quick 模块做得很好。恕我直言,您无法比较这两种技术。但是当我使用 React、Angular 和 Qt 来创建 UI 时,如果可能的话,我总是更喜欢 Qt 来做任何事情。
  • @SoheilArmin 它比数据绑定大。如果我更新模型,假设model.isEditFieldVisible = true UI 应该在所有使用或依赖变量isEditFieldVisible 的地方自动更新。
  • 好的。您所描述的是 exactly 数据绑定,Qt 很好地支持它。
  • 我们谈论的是 C++ 还是 QML UI? (什么是“LIBUI?”)除了已经描述的 QML 属性绑定之外,还有一个可以在 UI 状态之间转换的“状态机”框架。有C++ versionQML side。有趣的是,还有另一个 React JS question... 这是一个运动吗? :)
  • @MaximPaperno 嗯,我来自 Web Dev,对 QT(什么是 QML)不太了解。我正在寻找以类似于 React.JS 的方式使用 QT 或其他 UI 库的任何方式。

标签: reactjs qt user-interface qt5


【解决方案1】:

简单的答案是肯定的。但就 Qt5 而言,它更加健壮且结构良好。比较这两种技术并不是一个好的决定。我是 Qt 爱好者,所以我可能会给你一些偏见。

这里是关于Qt Property Binding的一些解释。

引用该页面:

属性绑定

可以为对象的属性分配静态值 它保持不变,直到它被显式分配一个新值。 然而,为了充分利用 QML 及其对 动态对象行为,大多数 QML 对象使用属性绑定。

属性绑定是 QML 的核心功能,它让开发人员 指定不同对象属性之间的关系。当一个 属性的依赖值改变,属性自动 根据指定的关系更新。

在幕后,QML 引擎监控属性的依赖关系 (即绑定表达式中的变量)。当发生变化时 检测到,QML 引擎重新评估绑定表达式和 将新结果应用于属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-25
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    • 2018-07-18
    相关资源
    最近更新 更多