I am trying to do is display an image, and then using drag-selection to select a sub-image for later processing. Eventually I want to be able to select multiple regions and tag each region for appropruate back end processing, but for now just being able to select one sub-image would
be good. I can display an image, but don't know how to implement
drag-selection (think it is also know as rubber band selection). I am
assuming I will need to write some mouse-callbacks or something. My
search-fu has failed me and I haven't been able to find any examples to
study. Can someone give me any pointers to which widgets I should be
using and perhaps where to find a sample program I can study.

There didn't seem to be much in the PyQt examples to show this - the
itemviews/chart example does use QRubberBand to allow the user to select
data, but that's not the best example to learn this technique from.

I quickly wrote an example that does part of what you want:

http://www.diotavelli.net/PyQtWiki/Selecting_a_region_of_a_widget [1]

Hope this helps,

Hi David,
thanks for your example! I was experimeting on QRubberBand too and it helped me a lot.

I tried your code myself but I found a small bug that confused me at start, in:

[...]
def mouseMoveEvent(self, event):

        if event.button() == Qt.LeftButton:
[...]

you check if the value retured by QMouseEvent.button() is Qt.LeftButton but in http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qmouseevent.html#buttoon states that "the returned value is always Qt.NoButton for mouse move events."; the code in mouseMoveEvent will never be executed and the rubber band will not work.

--
Diego Cortassa


--
Il messaggio e' stato analizzato alla ricerca di virus o
contenuti pericolosi da MailScanner, ed e'
risultato non infetto.

_______________________________________________
PyQt mailing list    [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to