【问题标题】:How to use .ui.qml files from Qt creator version 6如何使用来自 Qt creator 版本 6 的 .ui.qml 文件
【发布时间】:2021-12-24 21:24:21
【问题描述】:

最近几天我一直在阅读/观看一些关于 qt quick 和 qml 的教程。但是 qt creator 的用户界面,它在每个教程中的新 qt 快速项目中生成的样板已经不同。太混乱了。

我想做一个简单的Hello World Qt Quick项目,我从packt跟着这本书。 (和上次看到有变化,但还是不行)

我添加了一些 UI 文件,其中添加了 *.ui.qml 和 *form.qml 文件。现在,如果我在设计中编辑 .ui.qml,任何其他文件都不会反映任何更改,但如果我在设计中打开其他文件,它会提示我改用 .ui.qml 文件。这些示例给出了错误“未找到 Cmake 配置”。我在 Arch/wayland 上使用 Qt6.2,通过安装程序下载。

它应该如何工作?我已经阅读了this 的答案,以及其他一些答案,但我仍然感到困惑。 您能否链接到正确教程或简单示例?

【问题讨论】:

  • 显然我无法在任何地方找到答案。我别无选择,只能放弃 Qt

标签: qt qml qtquick2


【解决方案1】:

最好的考虑方法是 *.ui.qml 应该用于 UI 元素及其设置。它们应该与 UI 的结构、布局和样式有关。这样做也恰好使文件在 Creator 的设计模式下可呈现和可编辑,因为它简化了 QML 的结构,使其可以可靠地呈现和修改它。

*.qml 文件不应包含 UI 元素,而应主要包含函数、属性和信号处理程序。

这种模式有时被称为“代码隐藏”。它有点遵循与 HTML 和 CSS 相同的理念。现代 HTML 文档主要表示页面的结构,而 CSS 被放​​置在单独的文件中以控制它们的样式。

在这种情况下,*.ui.qml 文件包含结构和样式,而 *.qml 文件包含行为。 Creator 将创建一对,同时将 QML UI 资源添加到您的项目,其中 .qml 文件继承自 .ui.qml 文件。

除了这种继承和鼓励模式背后的代码之外,.qml 和 .ui.qml 文件之间没有真正的区别。当您进入设计器以帮助鼓励这种模式时,Creator 还将尝试引导您使用该对的 .ui.qml 版本。

我会注意到 Qt 在他们的文档和示例中都违反了这种模式 bunch....

【讨论】:

  • 如何在Qt快速应用程序中使用*.ui.qml文件?这些更改没有反映在 main.qml 文件中,我遵循了这个 answer,甚至我链接到的 packt book 在上一个版本中也这样做了。它构建良好,但没有运行并返回错误 255,没有其他消息。在文档中,它只讨论了在应用程序中使用外部 UI project。我不能在 Qt 快速应用项目中使用 *.ui.qml 文件,同时使用 UI 和逻辑吗?
  • 您可以像导入任何其他 qml 文件一样导入它们。如果 .ui.qml 文件在当前模块中,则其中引用的组件名称已经可用于同一模块中的每个其他组件。从这个角度来看,想象一下 *.ui.qml 和 *.qml 文件之间没有区别——因为没有区别。 IE。没有你想的那么复杂。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
相关资源
最近更新 更多