Qt for Python使用Qt中的Properties
生活随笔
收集整理的這篇文章主要介紹了
Qt for Python使用Qt中的Properties
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
PySide2提供了一個Property函數,它允許聲明同時表現為Qt和Python屬性的屬性,并將其setter和getter定義為Python函數。
下面給出了一個簡單的示例,說明如何從Python定義和訪問Qt屬性:
from PySide2.QtCore import QObject,Propertyclass StudentMsg(QObject):"""docstring for StudentMsg"""def __init__(self):QObject.__init__(self)def readMsg(self):return self.msgvaldef setMsg(self,msg):self.msgval = msgMSG = Property(str,readMsg,setMsg)student = StudentMsg() student.MSG = "aaa"print(student.MSG)如果要在QML表達式中調用對象的屬性,則QML要求屬性為在變化時有信號通知。所以需要在上面示例的基礎上增加一個信號:
from PySide2.QtCore import QObject,Property,Signalclass StudentMsg(QObject):"""docstring for StudentMsg"""def __init__(self):QObject.__init__(self)msg_changed = Signal(str)def readMsg(self):return self.msgvaldef setMsg(self,msg):self.msgval = msgself.msg_changed.emit(msg)MSG = Property(str,readMsg,setMsg,notify = msg_changed)student = StudentMsg() student.MSG = "aaa"print(student.MSG)總結
以上是生活随笔為你收集整理的Qt for Python使用Qt中的Properties的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt for Python Mac下使用
- 下一篇: Qt工程文件Pro中判断Qt版本号