<!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/examples/extension/extension.doc:1 --> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>An Extension Dialog Example</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>An Extension Dialog Example</h1> <p> <p> This example demonstrates how to create an extension dialog. <p> Essentially all that is necessary is to create a standard dialog and then create a <a href="qwidget.html">QWidget</a> form to be used as the extension. See the article in <a href="http://doc.trolltech.com/qq/">Qt Quarterly</a> issue #3. <p> <hr> <p> Project file: <p> <pre>TEMPLATE = app LANGUAGE = C++ CONFIG += qt warn_on release REQUIRES = full-config nocrosscompiler SOURCES += main.cpp FORMS = mainform.ui \ dialogform.ui \ extension.ui DBFILE = extension.db </pre> <p> <hr> <p> <hr> <p> Implementation: <p> <pre>/**************************************************************************** ** ui.h extension file, included from the uic-generated form implementation. ** ** If you wish to add, delete or rename functions use Qt Designer which will ** update this file, preserving your code. Create an init() function in place ** of a constructor, and a destroy() function in place of a destructor. *****************************************************************************/ #include "dialogform.h" #include "extension.h" #include <<a href="qapplication-h.html">qapplication.h</a>> #include <<a href="qcheckbox-h.html">qcheckbox.h</a>> #include <<a href="qlineedit-h.html">qlineedit.h</a>> void MainForm::init() { sessions = FALSE; logging = FALSE; log_filename = <a href="qstring.html#QString-null">QString::null</a>; log_errors = TRUE; log_actions = TRUE; } void MainForm::optionsDlg() { DialogForm *dlg = new DialogForm( this, "dialog", TRUE ); Extension *ext = (Extension*)dlg->extension()->qt_cast( "Extension" ); if ( !ext ) return; dlg->sessionsCheckBox->setChecked( sessions ); dlg->loggingCheckBox->setChecked( logging ); ext->logfileLineEdit->setText( log_filename ); ext->logErrorsCheckBox->setChecked( log_errors ); if ( dlg->exec() ) { sessions = dlg->sessionsCheckBox->isChecked(); logging = dlg->loggingCheckBox->isChecked(); log_filename = ext->logfileLineEdit->text(); log_errors = ext->logErrorsCheckBox->isChecked(); } } void MainForm::quit() { <a name="x2865"></a> QApplication::<a href="qapplication.html#exit">exit</a>( 0 ); } </pre> <pre>/**************************************************************************** ** ui.h extension file, included from the uic-generated form implementation. ** ** If you wish to add, delete or rename functions use Qt Designer which will ** update this file, preserving your code. Create an init() function in place ** of a constructor, and a destroy() function in place of a destructor. *****************************************************************************/ void DialogForm::init() { extensionShown = FALSE; setExtension( new Extension( this ) ); setOrientation( Vertical ); } void DialogForm::toggleDetails() { extensionShown = !extensionShown; showExtension( extensionShown ); <a href="qstring.html">QString</a> text = tr( "&Details " ); text += QString( extensionShown ? "<<<" : ">>>" ); detailsPushButton->setText( text ); } </pre> <pre>/**************************************************************************** ** ui.h extension file, included from the uic-generated form implementation. ** ** If you wish to add, delete or rename functions use Qt Designer which will ** update this file, preserving your code. Create an init() function in place ** of a constructor, and a destroy() function in place of a destructor. *****************************************************************************/ </pre> <p> <hr> <p> Main: <p> <pre>#include <<a href="qapplication-h.html">qapplication.h</a>> #include "mainform.h" int main( int argc, char ** argv ) { <a href="qapplication.html">QApplication</a> a( argc, argv ); MainForm *w = new MainForm; w->show(); <a name="x2868"></a><a name="x2867"></a> a.<a href="qobject.html#connect">connect</a>( &a, SIGNAL( <a href="qapplication.html#lastWindowClosed">lastWindowClosed</a>() ), w, SLOT( quit() ) ); return a.<a href="qapplication.html#exec">exec</a>(); } </pre> <p> <p>See also <a href="step-by-step-examples.html">Step-by-step 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>Qt 3.3.8</div> </table></div></address></body> </html>