An Extension Dialog ExampleJump
to comments or Add
a new comment
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:
SOURCES += main.cpp
FORMS = mainform.ui \
dialogform.ui \
extension.ui
TEMPLATE =app
CONFIG += qt warn_on release
DBFILE = extension.db
LANGUAGE = C++
REQUIRES = full-config nocrosscompiler
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.
Comments are owned by the poster. For suggestions and
info, contact the webmaster.
|