PySide6:QQmlApplicationEngine 调用 QML
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 // 设置按钮的边距
}
}