<div dir="ltr"><div>I'm using an ActiveX object to control some hardware stages. So far a simple example class like the following works fine:<br></div><div><font face="monospace, monospace"><br></font></div><div><div><font face="monospace, monospace">from PyQt4 import QAxContainer</font></div><div><font face="monospace, monospace">from PyQt4.QtCore import QVariant<br></font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">class MG17Motor(QAxContainer.QAxWidget):<br></font></div><div><font face="monospace, monospace">    def __init__(self):</font></div><div><font face="monospace, monospace">        super(MG17Motor, self).__init__()</font></div><div><font face="monospace, monospace">        self.setControl('{3CE35BF3-1E13-4D2C-8C0B-DEF6314420B3}')</font></div><div><font face="monospace, monospace">            </font></div><div><font face="monospace, monospace">    def set_serial_num(self, hw_serial_num):</font></div><div><font face="monospace, monospace">        ser = QVariant(hw_serial_num)</font></div><div><font face="monospace, monospace">        args = [ser]</font></div><div><font face="monospace, monospace">        self.dynamicCall('SetHWSerialNum(int)', args)</font></div></div><div><font face="monospace, monospace"><br></font></div><div><font face="arial, helvetica, sans-serif">How would I expand this class to also listen for ActiveX events, e.g. call a Python function when an ActiveX object event occurs. For instance to connect to the MoveComplete event, from the generated stage hardware docs (in C++):</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="monospace, monospace">QObject::connect(object, SIGNAL(MoveComplete(int)), receiver, SLOT(someSlot(int)));</font><br></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">But I can't work out the equivalent Python code. None of these work:<br><br></font></div><div><font face="monospace, monospace">self.connect(self, QtCore.SIGNAL('MoveComplete(int)'), self, QtCore.SLOT(self.myfunc))<br></font></div><div><font face="monospace, monospace">self.connect(self, QtCore.SIGNAL('MoveComplete(int)'), self.myfunc)</font><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="monospace, monospace">self.connect(self.MoveComplete(), QtCore.SIGNAL('MoveComplete(int)'), self, QtCore.SLOT(self.</font><span style="font-family:monospace,monospace">myfunc</span><font face="monospace, monospace">))<br></font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">There's also a reference to "<a name="14b4d93077dd0c4f_calling-a-function-using-the-native-com-interfaces" style="color:rgb(0,0,0)">request the COM interface directly using </a><a href="http://pyqt.sourceforge.net/Docs/PyQt4/qaxbase.html#queryInterface" style="color:rgb(103,41,103);text-decoration:none" target="_blank">QAxBase.queryInterface</a><span style="color:rgb(0,0,0)">()" in the PyQt docs, but queryInterface doesn't seem to be a valid method of that class.</span></font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">Could someone enlighten me?</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif"><br></font></div></div>