[vtkusers] QVTKWidget mouse event in python

Clinton Stimpson clinton at elemtech.com
Fri Sep 17 11:31:53 EDT 2010


You just need to do the following to keep the objects from going out of scope
self.connections = vtk.vtkEventQtSlotConnect()
self.t = TestConnection()

Clint

On Friday, September 17, 2010 08:22:48 am Nicola Creati wrote:
> Hello,
> I tried to use vtkEventQtSlotConnect but it does not work in my code. I
> wrote a small example that showes what I'm trying to do.
> 
> Nicola
> 
> import vtk
> from PyQt4.QtGui import *
> from PyQt4.QtCore import *
> import sys
> 
> class TestConnection(QObject):
>   @pyqtSlot()
>   def myslot(self):
>     print 'event'
> 
> class MainWindow(QMainWindow):
>   def __init__(self, parent=None):
>     super(MainWindow, self).__init__(parent)
> 
>     # Add the vtk window rwi
>     self.qvtk = vtk.QVTKWidget()
>     self.ren = vtk.vtkRenderer()
> 
>     self.rw = vtk.vtkRenderWindow()
>     self.rw.AddRenderer(self.ren)
>     self.qvtk.SetRenderWindow(self.rw)
> 
>     self.setCentralWidget(self.qvtk)
> 
>     connections = vtk.vtkEventQtSlotConnect()
>     t = TestConnection()
>     connections.Connect(self.qvtk.GetInteractor().GetInteractorStyle(),
>                                       vtk.vtkCommand.MouseMoveEvent,
>                                       t,
>                                       SLOT('myslot()'), "", 0.0,
> Qt.AutoConnection)
> 
> if __name__ == "__main__":
>   app = QApplication(sys.argv)
>   w = MainWindow()
>   w.show()
>   app.exec_()
> 
> Eric E. Monson wrote:
> > Hey Nicola,
> > 
> > I haven't used this myself, so hopefully someone else can also help with
> > more details, but I think what you need to use is vtkEventQtSlotConnect:
> > 
> > http://www.vtk.org/doc/nightly/html/classvtkEventQtSlotConnect.html
> > 
> > On that page there are links to two examples (C++) and a test (Python).
> > The Python test is pretty minimal, so you'll probably have to look at
> > those cxx tests to get more ideas of how to use it. I think the Qt
> > events example in [vtk_src]/Examples/GUI/Qt/Events/GUI4.cxx will be most
> > useful.
> > 
> > Good luck,
> > -Eric
> > 
> > ------------------------------------------------------
> > Eric E Monson
> > Duke Visualization Technology Group
> > 
> > On Sep 17, 2010, at 6:52 AM, Nicola Creati wrote:
> >> Hello,
> >> I'm using the new QVTKWidget wrapped in python and I need to capture
> >> mouse events. If I add an observer to the interactor style I can easly
> >> capture any mouse event. On the Qt side I cannot get any mouse events
> >> occurring in my QVTKWidgets. Is there a way to get it?
> >> 
> >> Thanks.
> >> 
> >> Nicola
> >> 
> >> 
> >> _____________________________________________________________________
> >> This communication, that may contain confidential and/or legally
> >> privileged information, is intended solely for the use of the intended
> >> addressees. Opinions, conclusions and other information contained in
> >> this message, that do not relate to the official business of OGS, shall
> >> be considered as not given or endorsed by it. Every opinion or advice
> >> contained in this communication is subject to the terms and conditions
> >> provided by the agreement governing the engagement with such a client.
> >> Any use, disclosure, copying or distribution of the contents of this
> >> communication by a not-intended recipient or in violation of the
> >> purposes of this communication is strictly prohibited and may be
> >> unlawful. For Italy only: Ai sensi del D.Lgs.196/2003 - "T.U. sulla
> >> Privacy" si precisa che le informazioni contenute in questo messaggio
> >> sono riservate ed a uso esclusivo del destinatario.
> >> _____________________________________________________________________
> >> _______________________________________________
> >> Powered by www.kitware.com
> >> 
> >> Visit other Kitware open-source projects at
> >> http://www.kitware.com/opensource/opensource.html
> >> 
> >> Please keep messages on-topic and check the VTK FAQ at:
> >> http://www.vtk.org/Wiki/VTK_FAQ
> >> 
> >> Follow this link to subscribe/unsubscribe:
> >> http://www.vtk.org/mailman/listinfo/vtkusers



More information about the vtkusers mailing list