Reputation: 189686
I can't seem to figure out how to print out the contents of an ItemFlag object:
<ItemFlags object at 0x0000000002A6C5A0>
It just appears like an opaque thing. Am I missing something?
Upvotes: 5
Views: 2955
Reputation: 707
I was also interested in knowing all the values available, so I made a little hardcoded script in python3 for anyone interested:
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))
Output looks like this:
NoItemFlags = 0
ItemIsSelectable = 1
ItemIsEditable = 2
ItemIsDragEnabled = 4
ItemIsDropEnabled = 8
ItemIsUserCheckable = 16
ItemIsEnabled = 32
ItemIsTristate = 64
I was working with someone else's code which allows you to or them together, so it had value 33 hardcoded, which confused me. But it just meant ItemIsSelectable and ItemIsEnabled both toggled on in one line. Less clear to future users, sadly. Maybe this will help someone else, too. @Jason S your answer was also helpful--thanks for posting.
Upvotes: 1
Reputation: 189686
never mind, I figured it out, I can just cast to an int:
flags = Qt.ItemIsEditable
print 'ItemIsEditable = %s' % int(flags)
which prints out
ItemIsEditable = 2
Upvotes: 6