时间:2021-05-23
1. 如何在python里获得qml里的对象?
1.1 获取根对象
QML:
import QtQuick 2.12import QtQuick.Controls 2.12ApplicationWindow { 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.12import QtQuick.Controls 2.12ApplicationWindow { 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!")完整代码:
import sysfrom PyQt5.QtCore import QObjectfrom PyQt5.QtGui import QGuiApplicationfrom PyQt5.QtQml import QQmlApplicationEngineapp = QGuiApplication(sys.argv)engine = QQmlApplicationEngine()engine.load('qml-test.qml')# 根对象root_obj = engine.rootObjects()[0]# Text对象txt_obj = engine.rootObjects()[0].findChild(QObject, "txt")# 读取属性值txt_value = txt_obj.property("text")# 设置属性值txt_obj.setProperty("text", "Clicked!")sys.exit(app.exec())以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
有2种方法:一、QML中定义一个信号,连接Python里的函数;这里的函数不用特意指明为槽函数,普通函数即可。QML的信号连接Python的函数QML:首先在Q
详解Python序列化Serialize和反序列化Deserialize序列化(serialization)序列化是将对象状态转换为可保持或传输的格式的过程。与
Python字典是另一种可变容器模型(无序),且可存储任意类型对象,如字符串、数字、元组等其他容器模型。本文章主要介绍Python中字典(Dict)的详解操作方
Python类的继承详解Python既然是面向对象的,当然支持类的继承,Python实现类的继承比JavaScript简单。Parent类:classParen
这篇文章主要介绍了python从内存地址上加载pythn对象过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以