<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- /home/espenr/tmp/qt-3.3.8-espenr-2499/qt-x11-free-3.3.8/extensions/activeqt/examples/webbrowser/webbrowser.doc:1 --> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>A Web Browser</title> <style type="text/css"><!-- fn { margin-left: 1cm; text-indent: -1cm; } a:link { color: #004faf; text-decoration: none } a:visited { color: #672967; text-decoration: none } body { background: #ffffff; color: black; } --></style> </head> <body> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr bgcolor="#E5E5E5"> <td valign=center> <a href="index.html"> <font color="#004faf">Home</font></a> | <a href="classes.html"> <font color="#004faf">All Classes</font></a> | <a href="mainclasses.html"> <font color="#004faf">Main Classes</font></a> | <a href="annotated.html"> <font color="#004faf">Annotated</font></a> | <a href="groups.html"> <font color="#004faf">Grouped Classes</font></a> | <a href="functions.html"> <font color="#004faf">Functions</font></a> </td> <td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><h1 align=center>A Web Browser</h1> This example utilizes the Microsoft Web Browser ActiveX control to implement a fully functional Web Browser application. The user interface has been developed using the TQt Designer integration of the <a href="qaxwidget.html">TQAxWidget</a> class. <p> The code demonstrates how the TQt application can communicate with the embedded ActiveX controls using signals, slots and the dynamicCall() function. Most signal and slot connections have already been set up within TQt Designer. <p> <pre> void MainWindow::init() { pb = new <a href="qprogressbar.html">TQProgressBar</a>( statusBar() ); <a name="x2513"></a> pb-><a href="qprogressbar.html#setPercentageVisible">setPercentageVisible</a>( FALSE ); <a name="x2516"></a> pb-><a href="qwidget.html#hide">hide</a>(); statusBar()->addWidget( pb, 0, TRUE ); connect( WebBrowser, SIGNAL(ProgressChange(int,int)), this, SLOT(setProgress(int,int)) ); connect( WebBrowser, SIGNAL(StatusTextChange(const <a href="qstring.html">TQString</a>&)), statusBar(), SLOT(message(const <a href="qstring.html">TQString</a>&)) ); WebBrowser->dynamicCall( "GoHome()" ); } </pre>The init() function is implemented to create a progress bar as the child of the status bar, and to connect Internet Explorer's <tt>ProgressChange()</tt> and <tt>StatusTextChange()</tt> signals to the respective displays. <p> Finally the <tt>GoHome()</tt> function of Internet Explorer is invoked using the <a href="qaxbase.html#dynamicCall">TQAxBase::dynamicCall</a>() dynamicCall() API. <p> <pre> void MainWindow::go() { actionStop->setEnabled( TRUE ); WebBrowser->dynamicCall( "Navigate(const <a href="qstring.html">TQString</a>&)", addressEdit->text() ); } </pre>The go() function calls the <tt>NavigateTo()</tt> function of Internet Explorer, passing the text of the address bar as the argument. <p> <pre> void MainWindow::setTitle( const <a href="qstring.html">TQString</a> &title ) { setCaption( "TQt WebBrowser - " + title ); } </pre>The setTitle() slot is connected to the TitleChange() signal of Internet Explorer, and updates the caption of the window using the provided title string. <p> <pre> void MainWindow::setProgress( int a, int b ) { if ( a <= 0 || b <= 0 ) { pb-><a href="qwidget.html#hide">hide</a>(); return; } pb-><a href="qwidget.html#show">show</a>(); <a name="x2515"></a> pb-><a href="qprogressbar.html#setTotalSteps">setTotalSteps</a>( b ); <a name="x2514"></a> pb-><a href="qprogressbar.html#setProgress">setProgress</a>( a ); } void MainWindow::setCommandState( int cmd, bool on ) { switch ( cmd ) { case 1: actionForward->setEnabled( on ); break; case 2: actionBack->setEnabled( on ); break; } } void MainWindow::navigateBegin() { actionStop->setEnabled( TRUE ); } void MainWindow::navigateComplete() { actionStop->setEnabled( FALSE ); } </pre>The setProgress(), setCommandState(), navigateBegin() and navigateComplete() slots are connected to the respective signals of Internet Explorer and update the user interface. <p> The rest of the implementation is not related to <a href="activeqt.html#ActiveTQt">ActiveTQt</a> and omitted for brevity. <p> To build the example you must first build the <a href="qaxcontainer.html">TQAxContainer</a> library. Then run your make tool in <tt>examples/webbrowser</tt> and run the resulting <tt>webbrowser.exe</tt>. <p>See also <a href="qaxcontainer-examples.html">The TQAxContainer Examples</a>. <!-- eof --> <p><address><hr><div align=center> <table width=100% cellspacing=0 border=0><tr> <td>Copyright © 2007 <a href="troll.html">Trolltech</a><td align=center><a href="trademarks.html">Trademarks</a> <td align=right><div align=right>TQt 3.3.8</div> </table></div></address></body> </html>