«

PySide6:QQmlApplicationEngine 调用 QML

admin 发布于 阅读:187 PyGUI


QQmlApplicationEngine

它是一个 QML 引擎,它可以加载和执行 QML 文件,并将其嵌入到现有的 Qt 应用程序中。
• 使用 QmlEngine 类可以创建一个 QML 引擎对象,它负责加载和管理 QML 内容。
• 可以将 QML 文件加载到引擎中,并通过引擎对象与 Python 代码进行交互。
• 引擎对象可以设置全局属性、注册自定义类型和提供信号与槽机制。
• 可以通过 rootObjects() 方法获取根 QML 对象,然后通过该对象访问 QML 中的属性和方法。

import sys

from PySide6.QtGui import QIcon
from PySide6.QtQml import QQmlApplicationEngine
from PySide6.QtCore import QUrl
from PySide6.QtWidgets import QApplication

if __name__ == "__main__":
    # 创建 QApplication 实例,用于管理应用程序的控制流和主要设置
    app = QApplication(sys.argv)

    # 创建 QQmlApplicationEngine 对象,用于加载和显示 QML 文件
    engine = QQmlApplicationEngine()

    # 设置窗口图标
    icon = QIcon("icon2.png")
    app.setWindowIcon(icon)

    # 设置要加载的 QML 文件路径
    engine.load(QUrl("10-loadQML.qml"))

    # 如果没有加载根对象,则退出程序
    root_object = engine.rootObjects()
    if not root_object:
        sys.exit(-1)
    # if not engine.rootObjects():
    #     sys.exit(-1)

    # 启动应用程序的事件循环
    sys.exit(app.exec())
import QtQuick 2.5
import QtQuick.Controls 2.5

ApplicationWindow {
    visible: true  // 设置窗口可见
    width: 640      // 窗口宽度
    height: 480     // 窗口高度
    title: "QML-engine加载" // 窗口标题

    // 确定按钮
    Button {
        id: btn_select_file
        text: "确定"  // 按钮显示的文本
        anchors.top: parent.top      // 将按钮固定在窗口顶部
        anchors.left: parent.left    // 将按钮固定在窗口左侧
        anchors.margins: 10          // 设置按钮的边距
    }

    // 取消按钮
    Button {
        text: "取消"   // 按钮显示的文本
        anchors.top: parent.top                // 将按钮固定在窗口顶部
        anchors.left: btn_select_file.right    // 将按钮固定在窗口左侧
        anchors.margins: 10                    // 设置按钮的边距
    }
}

python QML