On Fri, 6 Mar 2009 07:50:57 -0800, Brian Kelley <kel...@eyesopen.com>
wrote:
> Hmm, that is what I would have thought, you could always try calling the
> table widget directory in the case of ignores.  Actually, I'll bet you
have
> to do this since you have overridden the mousePressEvent function.
> 
> QtGui.QTableWidget.mousePressEvent(event)
> 
> 
> On 3/6/09 10:47 AM, "Marc Nations" <mnations.li...@gmail.com> wrote:
> 
> Thanks, wasn't aware of being able to accept events.
> 
> So I tried this, instead of waiting for release I moved it up to when a
> button is pressed to get a better idea of what was happening. I tried
this:
> 
>     def mousePressEvent(self, event):
>         if event.button() == QtCore.Qt.RightButton:
>             event.accept()
>             self.rightClickMenu(event)
>         else:
>             event.ignore()
> 
> According to the docs for the mouse events it should do this: "You should
> call ignore
>
<http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qevent.html#ignore>
> () if the mouse event is not handled by your widget. A mouse event is
> propagated up the parent widget chain until a widget accepts it with
accept
>
<http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qevent.html#accept>
> (), or an event filter consumes it."
> 
> My understanding of that is once I ignore the event it should
automatically
> try the base class, which in this case is the base table widget. However
> using that code the left-click is basically disabled and nothing happens.
> So the event just seems to get dropped at that point. Is there something
> else I need to do to make the event retreat in the right direction?

I think you are getting confused between the class hierarchy and the widget
hierarchy. An ignored event is passed to the parent widget not the base
class.

Phil
_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to