2014-07-25 104 views
3

的價值我似乎無法弄清楚如何打印出ItemFlag對象的內容:怎麼看PySide.QtCore.Qt.ItemFlag

<ItemFlags object at 0x0000000002A6C5A0> 

它只是看起來像一個不透明的事情。我錯過了什麼嗎?

+0

有一個例子可以在這裏打印角色:http://stackoverflow.com/a/33016000/1886357 – neuronet

回答

4

沒關係,我想通了,我可以轉換爲int:

flags = Qt.ItemIsEditable 
print 'ItemIsEditable = %s' % int(flags) 

打印出

ItemIsEditable = 2 
0

我也想知道所有可用的價值,所以我取得了python3有點硬編碼的腳本有興趣的人:

from PySide.QtCore import Qt 

#0 
flags = Qt.NoItemFlags 
print('NoItemFlags = %s' % int(flags)) 
#1 
flags = Qt.ItemIsSelectable 
print('ItemIsSelectable = %s' % int(flags)) 
#2 
flags = Qt.ItemIsEditable 
print('ItemIsEditable = %s' % int(flags)) 
#4 
flags = Qt.ItemIsDragEnabled 
print('ItemIsDragEnabled = %s' % int(flags)) 
#8 
flags = Qt.ItemIsDropEnabled 
print('ItemIsDropEnabled = %s' % int(flags)) 
#16 
flags = Qt.ItemIsUserCheckable 
print('ItemIsUserCheckable = %s' % int(flags)) 
#32 
flags = Qt.ItemIsEnabled 
print('ItemIsEnabled = %s' % int(flags)) 
#64 
flags = Qt.ItemIsTristate 
print('ItemIsTristate = %s' % int(flags)) 

輸出看起來像這樣:

NoItemFlags = 0 
ItemIsSelectable = 1 
ItemIsEditable = 2 
ItemIsDragEnabled = 4 
ItemIsDropEnabled = 8 
ItemIsUserCheckable = 16 
ItemIsEnabled = 32 
ItemIsTristate = 64 

我與別人的代碼,它允許你或他們一起工作,所以也只好值33硬編碼的,這讓我感到困惑。但它只是意味着ItemIsSelectable和ItemIsEnabled都在一行中切換。不幸的是,未來用戶不太清楚。也許這也會幫助其他人。 @Jason S你的回答也很有幫助 - 謝謝發帖。

+0

或者您可以在文檔中查找它:http://doc.qt.io /qt-4.8/qt.html#ItemFlag-enum – johnson