没有合适的资源?快使用搜索试试~ 我知道了~
首页Python操作qml对象过程详解
资源详情
资源评论
资源推荐

Python操作操作qml对象过程详解对象过程详解
主要介绍了Python操作qml对象过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定
的参考学习价值,需要的朋友可以参考下
1. 如何在如何在python里获得里获得qml里的对象?里的对象?
1.1 获取根对象获取根对象
QML:
import QtQuick 2.12
import QtQuick.Controls 2.12
ApplicationWindow {
id: window
width: 250
height: 500
visible: true
// ...
}
Python:
使用QQmlApplicationEngine类的rootObjects方法,返回的是一个列表,取索引0即是根对象。
engine = QQmlApplicationEngine()
engine.load('qml-test.qml')
root_obj = engine.rootObjects()[0]
这样就会获得id为window的ApplicationWindow对象。
1.2 获取任意对象获取任意对象
需要在qml文件中加入objecName属性!
QML:
import QtQuick 2.12
import QtQuick.Controls 2.12
ApplicationWindow {
id: window
width: 250
height: 500
visible: true
Text {
id: txt
objectName: "txt"
text: "Click Me"
font.pixelSize: 20
anchors.centerIn: parent
}
}
Python:
engine = QQmlApplicationEngine()
engine.load('qml-test.qml')
txt_obj = engine.rootObjects()[0].findChild(QObject, "txt")
2. 如何在如何在python里读取和设置里读取和设置qml对象的属性和值?对象的属性和值?
2.1 读取对象的属性读取对象的属性(如如Text对象对象)
首先通过 findChild 获取Text对象(注意 txt 是qml文件里的 objectName):
txt_obj = engine.rootObjects()[0].findChild(QObject, "txt")
然后获取Text对象的text属性(使用 property):
txt_value = txt_obj.property("text")
2.2 设置对象的属性设置对象的属性
使用setProperty方法可以更改对象的属性值。
txt_obj.setProperty("text", "Clicked!")


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0