I have done more tests and found the following:
- I have tried self.update() in various locations of updateItems() and
it did not change the behaviour.
- The changing of cursors always work with the item though.
- I have also tried commenting the item.update() line and this does not
change the behaviour so I think update() is not relevant to cursor changes.
- I tried it with commenting the loop at the end where i change the item
cursors and that changed the behaviour. So somehow changing the cursor
of an item has an effect on the view.
Any ideas or tips? Is this a bug or am I doing something the wrong way?
If I cannot get the cursors to work right I need to change my approach
on how i tell the user which mode he is working in.
Chris
On 24.08.2010 16:03, Mark Summerfield wrote:
Hi Christopher,
I think one factor is that you call update() on the items after changing
the cursor, but not on the view. I tried this:
def updateItems(self):
print("view updateItems")
m = self.scene().viewMode()
if m == MyScene.SELECTMODE:
print("is select mode")
itemCursor = Qt.OpenHandCursor
elif m == MyScene.EDITMODE:
print("is edit mode")
itemCursor = Qt.ForbiddenCursor
elif m == MyScene.DRAWMODE:
print("is draw mode")
itemCursor = Qt.CrossCursor
items = self.scene().items()
for item in items:
item.setCursor(itemCursor)
item.update()
self.setCursor(itemCursor)
self.update()
which had an interesting effect, i.e., the view's cursor does change,
but it doesn't work as I expected, and I don't have time to look into it
further:-(
[snip]
_______________________________________________
PyQt mailing list PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt