QML 简单类型

2022-08-12  本文已影响0人  水之心

参考:QML Tutorial - Qt for Python

学习 QML 基本类型,创建自己的 QML 组件、属性和信号,将在 states 和 transitions 的帮助下创建简单的动画。

先看简单的例子。

// view.qml
import QtQuick 2.0


Rectangle {
    id: page
    width: 320; height: 480
    color: "lightgray"

    Text {
        id: helloText
        text: "Hello world!"
        y: 30
        anchors.horizontalCenter: page.horizontalCenter
        font.pointSize: 24; font.bold: true
    }

}

大多数 QML 文件将从 QtQuick 导入内置的 QML 类型(如 Rectangle , Image

这里声明根类型为 Rectangle,包含 Text 类型。

直接调用 Python 接口渲染。

import sys
from PySide6.QtWidgets import QApplication
from PySide6.QtQuick import QQuickView


if __name__ == "__main__":
    app = QApplication()
    view = QQuickView()

    view.setSource("view.qml")
    view.show()
    sys.exit(app.exec())

显示为:

需要注意:这里两个类型都有属性 id,用于标识该类型。

也可以给矩形添加边框:

// view.qml
import QtQuick 2.0


Rectangle {
    id: page
    width: 320; height: 480
    color: "lightgray"
    border.color: "black"
    border.width: 5

    Text {
        id: helloText
        text: "Hello world!"
        y: 30
        anchors.horizontalCenter: page.horizontalCenter
        font.pointSize: 24; font.bold: true
    }

}

显示为:

也可以添加渐变效果:

// view.qml
import QtQuick 2.0


Rectangle {
    id: page
    width: 320; height: 480
    border.color: "black"
    border.width: 5
    gradient: Gradient {
        GradientStop { position: 0.0; color: "lightsteelblue" }
        GradientStop { position: 1.0; color: "blue" }
    }

    Text {
        id: helloText
        text: "Hello world!"
        y: 30
        anchors.horizontalCenter: page.horizontalCenter
        font.pointSize: 24; font.bold: true
    }

}
上一篇下一篇

猜你喜欢

热点阅读