PySide教程:PySide中使用Qt屬性

作者: meegoq.com  來源: MeeGo中文論壇-米趣網  發布時間: 2011-02-10 16:45  閱讀: 940 次  推薦: 0   原文鏈接   [收藏]  

  PySide提供了 Propery 函數定義一種屬性,該屬性可以同時作為Qt和Python的屬性(我們知道,一般在Python下定義的屬性,并不是Qt屬性)。而這個屬性的Setter和getter也可以用Python函數定義。

  下面的小例子解釋如何在Python中定義和使用Qt屬性:

 
class MyObject(QObject):
def __init__(self,startval=42):
self.ppval
= startval

def readPP(self):
return self.ppval

def setPP(self,val):
self.ppval
= val

pp
= Property(int, readPP, setPP)

obj
= MyObject()
obj.pp
= 47
print obj.pp

  這里有PySide屬性系統的詳細定義 PSEP 103

  QML中的屬性
  如果你在QML使用對象的屬性,QML要求能夠通知該對象屬性發生修改的消息。下面這個例子則演示了如何使用該特性。

 
class Person(QtCore.QObject):
def __init__(self, name):
QtCore.QObject.
__init__(self)
self._person_name
= name

def _name(self):
return self._person_name

QtCore.Signal

def name_changed(self):
pass

name = QtCore.Property(unicode, _name, notify=name_changed)

  在數據發生改變時,QML會自動更新所有依賴該數據的表達式。

0
0
 
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()