Python操作qml對(duì)象過(guò)程詳解
1. 如何在python里獲得qml里的對(duì)象?
1.1 獲取根對(duì)象
QML:
import QtQuick 2.12 import QtQuick.Controls 2.12 ApplicationWindow { id: window width: 250 height: 500 visible: true // ... }
Python:
使用QQmlApplicationEngine類(lèi)的rootObjects方法,返回的是一個(gè)列表,取索引0即是根對(duì)象。
engine = QQmlApplicationEngine() engine.load('qml-test.qml') root_obj = engine.rootObjects()[0]
這樣就會(huì)獲得id為window的ApplicationWindow對(duì)象。
1.2 獲取任意對(duì)象
需要在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里讀取和設(shè)置qml對(duì)象的屬性和值?
2.1 讀取對(duì)象的屬性(如Text對(duì)象)
首先通過(guò) findChild 獲取Text對(duì)象(注意 txt 是qml文件里的 objectName):
txt_obj = engine.rootObjects()[0].findChild(QObject, "txt")
然后獲取Text對(duì)象的text屬性(使用 property):
txt_value = txt_obj.property("text")
2.2 設(shè)置對(duì)象的屬性
使用setProperty方法可以更改對(duì)象的屬性值。
txt_obj.setProperty("text", "Clicked!")
完整代碼:
import sys from PyQt5.QtCore import QObject from PyQt5.QtGui import QGuiApplication from PyQt5.QtQml import QQmlApplicationEngine app = QGuiApplication(sys.argv) engine = QQmlApplicationEngine() engine.load('qml-test.qml') # 根對(duì)象 root_obj = engine.rootObjects()[0] # Text對(duì)象 txt_obj = engine.rootObjects()[0].findChild(QObject, "txt") # 讀取屬性值 txt_value = txt_obj.property("text") # 設(shè)置屬性值 txt_obj.setProperty("text", "Clicked!") sys.exit(app.exec())
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python實(shí)現(xiàn)將excel文件轉(zhuǎn)化成CSV格式
下面小編就為大家分享一篇python實(shí)現(xiàn)將excel文件轉(zhuǎn)化成CSV格式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03對(duì)pandas中時(shí)間窗函數(shù)rolling的使用詳解
今天小編就為大家分享一篇對(duì)pandas中時(shí)間窗函數(shù)rolling的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11python同義詞替換的實(shí)現(xiàn)(jieba分詞)
這篇文章主要介紹了python同義詞替換的實(shí)現(xiàn)(jieba分詞),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01OpenCV+python實(shí)現(xiàn)實(shí)時(shí)目標(biāo)檢測(cè)功能
這篇文章主要介紹了OpenCV+python實(shí)現(xiàn)實(shí)時(shí)目標(biāo)檢測(cè)功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06python實(shí)現(xiàn)圖片變亮或者變暗的方法
這篇文章主要介紹了python實(shí)現(xiàn)圖片變亮或者變暗的方法,涉及Python中Image模塊操作圖片的相關(guān)技巧,需要的朋友可以參考下2015-06-06Python實(shí)現(xiàn)求數(shù)列和的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)求數(shù)列和的方法,涉及Python數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2018-01-01python政策網(wǎng)字體反爬實(shí)例(附完整代碼)
大家好,本篇文章主要講的是python政策網(wǎng)字體反爬實(shí)例(附完整代碼),感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01