<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=US-ASCII">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2653.12">
<TITLE>QAssistantClient and PyQt</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>I'm a bit confused about a problem that I'm having when using QAssistantClient from a Python program. Here's a snippet of the code that I'm using to test things out.</FONT></P>

<P><FONT SIZE=2>import sys</FONT>
<BR><FONT SIZE=2>from qt import *</FONT>
</P>

<P><FONT SIZE=2>class LaunchButton( QPushButton ):</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp; def __init__( self, *args ):</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; apply( QPushButton.__init__, (self,) + args )</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.setText( &quot;Launch&quot; )</FONT>
</P>
<BR>

<P><FONT SIZE=2>class TheWindow( QMainWindow ):</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp; def __init__( self, *args ):</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; apply( QMainWindow.__init__, (self,) + args )</FONT>
</P>

<P><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.button=LaunchButton( self )</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.setCentralWidget( self.button )</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.connect( self.button, SIGNAL( &quot;clicked()&quot; ), self.BeenClicked )</FONT>
</P>

<P><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.qac = QAssistantClient( '' )</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.connect( self.qac, SIGNAL( &quot;destroyed()&quot; ),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.qacDestroyed )</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.connect( self.qac, SIGNAL( &quot;assistantOpened()&quot; ), self.qacOpened )</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.connect( self.qac, SIGNAL( &quot;assistantClosed()&quot; ), self.qacClosed )</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.connect( self.qac, SIGNAL( &quot;error()&quot; ),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.qacError )</FONT>
</P>

<P><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.toggle = True</FONT>
</P>

<P><FONT SIZE=2>&nbsp;&nbsp;&nbsp; def qacDestroyed( self ):</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print 'qacDestroyed'</FONT>
</P>

<P><FONT SIZE=2>&nbsp;&nbsp;&nbsp; def qacOpened( self ):</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print 'qacOpened'</FONT>
</P>

<P><FONT SIZE=2>&nbsp;&nbsp;&nbsp; def qacClosed( self ):</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print 'qacClosed'</FONT>
</P>

<P><FONT SIZE=2>&nbsp;&nbsp;&nbsp; def qacError( self ):</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print 'qacError'</FONT>
</P>

<P><FONT SIZE=2>&nbsp;&nbsp;&nbsp; def BeenClicked( self ):</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if self.toggle:</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; page = '/tools/qt/doc/html/assistant.html'</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.toggle = False</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else:</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; page = '/tools/qt/doc/html/assistant-4.html#3'</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.toggle = True</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print 'Been clicked: ' + page</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.qac.showPage( page )</FONT>
</P>
<BR>

<P><FONT SIZE=2>def main(args):</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp; app=QApplication( args )</FONT>
</P>

<P><FONT SIZE=2>&nbsp;&nbsp;&nbsp; win=TheWindow( )</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp; win.show( )</FONT>
</P>

<P><FONT SIZE=2>&nbsp;&nbsp;&nbsp; app.connect( app, SIGNAL( &quot;lastWindowClosed()&quot; ), app, SLOT( &quot;quit()&quot; ) )</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp; app.exec_loop()</FONT>
</P>
<BR>

<P><FONT SIZE=2>if __name__==&quot;__main__&quot;:</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp; main( sys.argv )</FONT>
</P>
<BR>

<P><FONT SIZE=2>My problem occurs when connecting the error signal to a slot. At runtime, I receive these messages:</FONT>
</P>

<P><FONT SIZE=2>QObject::connect: No such signal QAssistantClient::error()</FONT>
<BR><FONT SIZE=2>QObject::connect:&nbsp; (sender name:&nbsp;&nbsp; 'unnamed')</FONT>
<BR><FONT SIZE=2>QObject::connect:&nbsp; (receiver name: 'unnamed')</FONT>
</P>

<P><FONT SIZE=2>But when I look through the QAssistantClient.cpp and sipqtQAssistantClient.cpp code, the error signal looks to be defined the same way the destroyed, assistantOpened and assistantClosed signals. What am I missing?</FONT></P>

<P><FONT SIZE=2>Thanks.</FONT>
</P>
<BR>

<P><FONT SIZE=2>- Peter</FONT>
</P>

<P><FONT SIZE=2>Special Projects Group, Legato Systems</FONT>
<BR><FONT SIZE=2>3210 Porter Drive, Palo Alto, CA 94304</FONT>
<BR><FONT SIZE=2>650-812-6081 Desk</FONT>
<BR><FONT SIZE=2>408-482-9427 Cell</FONT>
<BR><FONT SIZE=2>pkropf@legato.com</FONT>
</P>

</BODY>
</HTML>