QML's basic elements allow the easy inclusion of objects into the scene.
This is a list of some of the elements readily available for users.
For a complete list of QML elements, please visit the QML 元素 页面。
When using QML elements, keep in mind that elements may possess properties that other elements also possess. This is because QML and its underlying engine is implemented in C++ using Qt. More importantly, the chain of property inheritance is directly due to QML's use of the
Qt Declarative 模块
and Qt's
元对象
and
property
systems. For example, visual elements that have C++ implementation are sublcasses of
QDeclarativeItem
. As a result, elements such as
Rectangle
and
Text
elements inherit properties such as
clip
and
smooth
.
Many QML elements inherit
Item
特性。
Item
possesses important properties such as
focus
,
children
, and dimension properties such as
width
and
height
. Although
Item
has physical properties, it is not a visual element. Using
Item
as the top-level QML element (as the screen) will not produce a visual result, use the
Rectangle
element instead. Use the
Item
to create opacity effects, such as when creating an invisible container to hold other components.
The
Rectangle
element is the basic visual element, for displaying different types of items onto the screen. The
Rectangle
is customizable and utilizes other elements such as
Gradient
and
BorderImage
for displaying advanced customized graphics.
To insert an image into a QML scene, merely declare an
Image
element. The
图像
element can load images in formats supported by Qt.
The
Text
and
TextEdit
elements display formatted text onto the screen.
TextEdit
features multi-line editing while the
TextInput
element is for single line text input.
For creating components (or displaying a simple scene), there are different elements that could be used as the top-level component. To display a simple scene, a Rectangle as the top-level component may suffice. Rectangle , FocusScope , Component , QtObject, Item , are some of the commonly used elements as the top-level component.
When importing components, the top-level component is important because the top-level component's properties are the only properties exposed to the parent.
For example, a
Button
component may be implemented using different elements as its top-level component. When this component is loaded into another QML scene, the component will retain the top-level component's properties. If a non-visual component is the top-level component, the visual properties should be aliased to the top-level to display the component properly.
For more information on how to build upon QML elements, see the 导入可重用组件 文档。