官文:https://doc.qt.io/qt-6/qmlapplications.html
QML 是一种声明性语言,它允许根据用户界面的可视化组件以及它们如何交互和相互关联来描述用户界面。它是一种高度可读的语言,旨在使组件能够以动态方式互连,并允许在用户界面中轻松重用和自定义组件。使用 QtQuick 模块,设计人员和开发人员可以轻松地在 QML 中构建流畅的动画用户界面,并且可以将界面连接到任何后端 C++ 库。
1.什么是 QML?
QML 是一种用户界面规范和编程语言。它允许开发人员和设计人员创建高性能、流畅的动画和视觉上吸引人的应用程序。QML 提供了一种高度可读的、声明性的、类似 JSON 的语法,支持与动态属性绑定相结合的命令式 JavaScript 表达式。
import QtQuick
import QtQuick.Controls
ApplicationWindow {
width: 400
height: 400
visible: true
Button {
id: button
text: "A Special Button"
background: Rectangle {
implicitWidth: 100
implicitHeight: 40
color: button.down ? "#d6d6d6" : "#f6f6f6"
border.color: "#26282a"
border.width: 1
radius: 4
}
}
}
Qt QML 模块提供了 QML 语言和引擎基础结构。以下页面包含有关 QML 的更多信息:
- First Steps with QML - begin using QML with these examples
- Creating Qt Quick Projects in Qt Creator
- The QML Reference - reference about the QML constructs and features
- QML Coding Conventions
- Glossary of QML Terms
- All QML APIs by Module
2. 什么是 Qt Quick?
Qt Quick 是 QML 的 QML 类型和功能的标准库。它包括视觉类型、交互类型、动画、模型和视图、粒子效果和着色器效果。QML 程序开发人员可以使用单个导入语句访问所有这些功能。
Qt Quick 模块提供了 QtQuick QML 库。有关 Qt Quick 提供的各种 QML 类型和其他功能的深入信息,请参阅 Qt Quick 模块文档。除了 Qt QML 的标准 QML 类型之外,Qt Quick 还添加了视觉类型、动画类型和其他 QML 类型。
- Visual types in QML
- Responding to User Input in QML
- Animations in QML
- Displaying Text in QML
- Layouts in QML
- Style and Theme Support
-
2.1 按钮、菜单、其他控件
Qt Quick Controls 模块实现了按钮、菜单和视图等多个控件。这些控件带有几个可以使用的内置样式,并且还支持创建自定义样式。
3.Qt Quick 项目
Qt Creator 为以下类型的 Qt Quick 应用程序设置项目环境:
Scroll - 基于滚动的导航
- Stack - 基于堆栈的导航
- Swipe - 带有滑动导航的基于页面的应用程序
- Python - Qt for Python 项目具有 QML UI 并具有 Qt Creator 支持
有关 Qt Quick 应用程序的更多信息,请访问以下页面:
- Creating Qt Quick Projects
-
4.代码示例
要了解有关 QML 代码使用的更多信息,有几个代码示例展示了如何使用 QML 类型。此外,还有几个演示展示了如何在应用程序中使用 QML 代码。
Getting Started Programming with Qt Quick - 了一个简单的 QML 文本编辑器的创建
Qt Quick Examples and Tutorials
5.高级主题
- Deploying QML Applications
- Best Practices for QML and Qt Quick
- Performance Considerations and Suggestions
- Internationalization and Localization
Testing and Debugging
- All QML APIs by Module
- Obsolete QML Types