说说QtQuick提供的类型
2017-06-10 本文已影响81人
b0542f6c4d28
Qt Quick 提供了标准qml类型,可视化类型,动画类型以及其他qml类型。
标准qml类型
官网的介绍原文请戳这里
- qml语言提供的基本类型
类型 | 解释 | 写法 |
---|---|---|
bool | Binary true/false value | |
double | Number with a decimal point, stored in double precision | |
enumeration | Named enumeration value | e.g:Text.AlignRight |
int | Whole number, e.g. 0, 10, or -20 | |
list | List of QML objects | [ ] |
real | Number with a decimal point | |
string | Free form text string | |
url | Resource locator | 和字符串一样 |
var | Generic property type |
为什么有一个url类型呢?我觉得除了语义化,专属于资源定位符外,还有一个好处是写资源路径的时候IDE可以自动提示。
- qml模块提供的基本类型
类型 | 解释 | 写法 |
---|---|---|
date | Date value | "YYYY-MM-DD" string |
point | Value with x and y attributes | "x,y" string |
rect | Value with x, y, width and height attributes | "x, y, width x height" string |
size | Value with width and height attributes | "width x height" string |
color | ARGB color value. The color type refers to an ARGB color value. It can be specified in a number of ways: | SVG color name;十六进制三元组或四元组;Qt.rgba(), Qt.hsva(), Qt.hsla(), Qt.darker(), Qt.lighter() or Qt.tint() |
font | Font value with the properties of QFont. The font type refers to a font value with the properties of QFont。(居然是一个对象) | |
matrix4x4 | A matrix4x4 type is a 4-row and 4-column matrix | Qt.matrix4x4(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); |
quaternion | A quaternion type has scalar, x, y, and z attributes | "scalar,x,y,z" string |
vector2d | A vector2d type has x and y attributes | "x,y" string |
vector3d | Value with x, y, and z attributes | "x,y,z" string |
vector4d | A vector4d type has x, y, z and w attributes | "x,y,z,w" string |
我没有想到qml模块会提供这么些基本类型,在我的印象中,这些都不是对象么?
可视化类型
先放一张Item子类的图
Item子类当然还有Qt Quick Controls 2
Control有部分是继承Popup
Popup顶级窗口ApplicationWindow又是另外一套
window关于这部分控件,我在开发的时候做过一些记录。
ApplicationWindow,最具体的qml主窗口
Page是可以变换样式的控件
图Control是提供共同函数的控件
图Lable是跟随系统字体和颜色的控件
Text是自定义文本
代理就是一个模具
Item可以和ItemDelegate融合在一起,Rectangle不行
FocusScope显示提供一块焦点区域
StackView基于栈的视图
QtQuickControls 1.4和2.2不一样
Pane背景色与应用程序的样式和主题一样
Page可以遮住后面的
Rectangle背景有颜色,有可选边框
ColumnLayout就是GridLayout的特例
Page外部的点击header感应不到
写在后面的组件比会覆盖前面的组件
动画类型
动画的继承图
图可以看到qml对动画的支持还是非常好的。
在开发中我遇到过Pane和Page不支持动画,原因不清楚。
其他qml类型
这个其他类型是什么类型呢?信号槽连接的那个算不算?其他类型就是不是上面的三种类型。