如何查看PySide.QtCore.Qt.ItemFlag的值

时间:2014-07-25 17:32:35

标签: python qt pyside

我似乎无法弄清楚如何打印出ItemFlag对象的内容:

<ItemFlags object at 0x0000000002A6C5A0>

它看起来像一个不透明的东西。我错过了什么吗?

2 个答案:

答案 0 :(得分:4)

没关系,我想通了,我可以直接转换为int:

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

打印出来

ItemIsEditable = 2

答案 1 :(得分: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你的回答也很有帮助 - 感谢你发帖。