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

Reply via email to