Python操作qml物件

2022-02-20 15:02:36 字數 1546 閱讀 7187

qml:

import qtquick 2.12

import qtquick.controls 2.12

id: window

width: 250

height: 500

visible: true

// ...

}

python:

engine.load(

'qml-test.qml')

root_obj = engine.rootobjects()[0]

需要在qml檔案中加入objecname屬性!

qml:

id: window

width: 250height: 500visible:

true

text

}python:

engine.load(

'qml-test.qml')

txt_obj = engine.rootobjects()[0].findchild(qobject,"txt")

首先通過findchild獲取text物件(注意txt是qml檔案裡的 objectname):

txt_obj = engine.rootobjects()[0].findchild(qobject, "txt"

)

然後獲取text物件的text屬性(使用property):

txt_value = txt_obj.property("

text

")

使用setproperty方法可以更改物件的屬性值。

txt_obj.setproperty("

text

", "

clicked!

")

完整**:

import

sysfrom pyqt5.qtcore import

qobject

from pyqt5.qtgui import

from pyqt5.qtqml import

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!")

exec())

-- end --

QML基礎 QML物件型別介紹

用了n年的qwidget,因為專案需求而開始學習qml做一些動態的介面,下面開始記錄學習qml的新路歷程。注 學習有誤的望指點一二,不喜勿噴!用語法術語來說,qml物件型別是一種可以用來宣告物件的方法,方法是指定型別每次,後跟一組包含該物件屬性的花括號。這與基本型別不同,基本型別不能以該方式使用。例...

C 物件與QML屬性

qquickview qquickview viewer viewer.rootcontext setcontextproperty colormaker new colormaker viewer.sersource qurl qrc 從堆上分配了乙個colormaker物件,然後註冊為qml上下...

qml中嵌入c 物件

main.cpp 設定qml屬性和視窗屬性 include include include include int main int argc,char argv include include include class qobject 可以使用q invokable的public函式或者publ...