| 
 |  | 
| Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |  | 
This example demonstrates how to create an extension dialog.
Essentially all that is necessary is to create a standard dialog and then create a QWidget form to be used as the extension. See the article in Qt Quarterly issue #3.
Project file:
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
Implementation:
/****************************************************************************
** 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 <qapplication.h>
#include <qcheckbox.h>
#include <qlineedit.h>
void MainForm::init()
{
    sessions = FALSE;
    logging = FALSE;
    log_filename = QString::null;
    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()
{
    QApplication::exit( 0 );
}
/****************************************************************************
** 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 );
    QString text = tr( "&Details " );
    text += QString( extensionShown ? "<<<" : ">>>" );
    detailsPushButton->setText( text );
}
/**************************************************************************** ** 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. *****************************************************************************/
Main:
#include <qapplication.h>
#include "mainform.h"
int main( int argc, char ** argv )
{
    QApplication a( argc, argv );
    MainForm *w = new MainForm;
    w->show();
    a.connect( &a, SIGNAL( lastWindowClosed() ), w, SLOT( quit() ) );
    return a.exec();
}
See also Step-by-step Examples.
| Copyright © 2007 Trolltech | Trademarks | Qt 3.3.8 |