1
<?xml version="1.0" encoding="iso-8859-1"?>
3
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
4
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
<title>Qt 4.0: complexwizard.cpp Example File (dialogs/complexwizard/complexwizard.cpp)</title>
7
<style>h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm; }
8
a:link { color: #004faf; text-decoration: none }
9
a:visited { color: #672967; text-decoration: none }
10
td.postheader { font-family: sans-serif }
11
tr.address { font-family: sans-serif }
12
body { background: #ffffff; color: black; }</style>
15
<table border="0" cellpadding="0" cellspacing="0" width="100%">
17
<td align="left" valign="top" width="32"><img src="images/qt-logo.png" align="left" width="32" height="32" border="0" /></td>
18
<td width="1"> </td><td class="postheader" 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>
19
<td align="right" valign="top" width="230"><img src="images/trolltech-logo.png" align="right" width="203" height="32" border="0" /></td></tr></table><h1 align="center">complexwizard.cpp Example File<br /><small><small>dialogs/complexwizard/complexwizard.cpp</small></small></h1>
20
<pre> /****************************************************************************
22
** Copyright (C) 2004-2005 Trolltech AS. All rights reserved.
24
** This file is part of the documentation of the Qt Toolkit.
26
** This file may be distributed under the terms of the Q Public License
27
** as defined by Trolltech AS of Norway and appearing in the file
28
** LICENSE.QPL included in the packaging of this file.
30
** This file may be distributed and/or modified under the terms of the
31
** GNU General Public License version 2 as published by the Free Software
32
** Foundation and appearing in the file LICENSE.GPL included in the
33
** packaging of this file.
35
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
36
** information about Qt Commercial License Agreements.
37
** See http://www.trolltech.com/qpl/ for QPL licensing information.
38
** See http://www.trolltech.com/gpl/ for GPL licensing information.
40
** Contact info@trolltech.com if any conditions of this licensing are
43
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
44
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
46
****************************************************************************/
48
#include <QtGui>
50
#include "complexwizard.h"
52
ComplexWizard::ComplexWizard(QWidget *parent)
55
cancelButton = new QPushButton(tr("Cancel"));
56
backButton = new QPushButton(tr("< &Back"));
57
nextButton = new QPushButton(tr("Next >"));
58
finishButton = new QPushButton(tr("&Finish"));
60
connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
61
connect(backButton, SIGNAL(clicked()), this, SLOT(backButtonClicked()));
62
connect(nextButton, SIGNAL(clicked()), this, SLOT(nextButtonClicked()));
63
connect(finishButton, SIGNAL(clicked()), this, SLOT(accept()));
65
buttonLayout = new QHBoxLayout;
66
buttonLayout->addStretch(1);
67
buttonLayout->addWidget(cancelButton);
68
buttonLayout->addWidget(backButton);
69
buttonLayout->addWidget(nextButton);
70
buttonLayout->addWidget(finishButton);
72
mainLayout = new QVBoxLayout;
73
mainLayout->addLayout(buttonLayout);
74
setLayout(mainLayout);
77
void ComplexWizard::setFirstPage(WizardPage *page)
84
void ComplexWizard::backButtonClicked()
86
WizardPage *oldPage = history.takeLast();
87
oldPage->resetPage();
91
void ComplexWizard::nextButtonClicked()
93
WizardPage *oldPage = history.last();
94
WizardPage *newPage = oldPage->nextPage();
95
newPage->resetPage();
96
history.append(newPage);
100
void ComplexWizard::completeStateChanged()
102
WizardPage *currentPage = history.last();
103
if (currentPage->isLastPage())
104
finishButton->setEnabled(currentPage->isComplete());
106
nextButton->setEnabled(currentPage->isComplete());
109
void ComplexWizard::switchPage(WizardPage *oldPage)
113
mainLayout->removeWidget(oldPage);
114
disconnect(oldPage, SIGNAL(completeStateChanged()),
115
this, SLOT(completeStateChanged()));
118
WizardPage *newPage = history.last();
119
mainLayout->insertWidget(0, newPage);
121
newPage->setFocus();
122
connect(newPage, SIGNAL(completeStateChanged()),
123
this, SLOT(completeStateChanged()));
125
backButton->setEnabled(history.size() != 1);
126
if (newPage->isLastPage()) {
127
nextButton->setEnabled(false);
128
finishButton->setDefault(true);
130
nextButton->setDefault(true);
131
finishButton->setEnabled(false);
133
completeStateChanged();
136
WizardPage::WizardPage(QWidget *parent)
142
void WizardPage::resetPage()
146
WizardPage *WizardPage::nextPage()
151
bool WizardPage::isLastPage()
156
bool WizardPage::isComplete()
160
<p /><address><hr /><div align="center">
161
<table width="100%" cellspacing="0" border="0"><tr class="address">
162
<td width="30%">Copyright © 2005 <a href="trolltech.html">Trolltech</a></td>
163
<td width="40%" align="center"><a href="trademarks.html">Trademarks</a></td>
164
<td width="30%" align="right"><div align="right">Qt 4.0.0</div></td>
165
</tr></table></div></address></body>