<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>classwizard.cpp Example File | Qt Widgets 5.12.6</title> <link rel="stylesheet" type="text/css" href="style/offline-simple.css" /> <script type="text/javascript"> document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css"); // loading style sheet breaks anchors that were jumped to before // so force jumping to anchor again setTimeout(function() { var anchor = location.hash; // need to jump to different anchor first (e.g. none) location.hash = "#"; setTimeout(function() { location.hash = anchor; }, 0); }, 0); </script> </head> <body> <div class="header" id="qtdocheader"> <div class="main"> <div class="main-rounded"> <div class="navigationbar"> <table><tr> <td >Qt 5.12</td><td ><a href="qtwidgets-index.html">Qt Widgets</a></td><td ><a href="qtwidgets-dialogs-classwizard-example.html">Class Wizard Example</a></td><td >classwizard.cpp Example File</td></tr></table><table class="buildversion"><tr> <td id="buildversion" width="100%" align="right"><a href="qtwidgets-index.html">Qt 5.12.6 Reference Documentation</a></td> </tr></table> </div> </div> <div class="content"> <div class="line"> <div class="content mainContent"> <div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div> <h1 class="title">classwizard.cpp Example File</h1> <span class="subtitle">dialogs/classwizard/classwizard.cpp</span> <!-- $$$dialogs/classwizard/classwizard.cpp-description --> <div class="descr"> <a name="details"></a> <pre class="cpp"> <span class="comment">/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** BSD License Usage ** Alternatively, you may use this file under the terms of the BSD license ** as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of The Qt Company Ltd nor the names of its ** contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/</span> <span class="preprocessor">#include <QtWidgets></span> <span class="preprocessor">#include "classwizard.h"</span> ClassWizard<span class="operator">::</span>ClassWizard(<span class="type"><a href="qwidget.html">QWidget</a></span> <span class="operator">*</span>parent) : <span class="type"><a href="qwizard.html">QWizard</a></span>(parent) { addPage(<span class="keyword">new</span> IntroPage); addPage(<span class="keyword">new</span> ClassInfoPage); addPage(<span class="keyword">new</span> CodeStylePage); addPage(<span class="keyword">new</span> OutputFilesPage); addPage(<span class="keyword">new</span> ConclusionPage); setPixmap(<span class="type"><a href="qwizard.html">QWizard</a></span><span class="operator">::</span>BannerPixmap<span class="operator">,</span> <span class="type"><a href="../qtgui/qpixmap.html">QPixmap</a></span>(<span class="string">":/images/banner.png"</span>)); setPixmap(<span class="type"><a href="qwizard.html">QWizard</a></span><span class="operator">::</span>BackgroundPixmap<span class="operator">,</span> <span class="type"><a href="../qtgui/qpixmap.html">QPixmap</a></span>(<span class="string">":/images/background.png"</span>)); setWindowTitle(tr(<span class="string">"Class Wizard"</span>)); } <span class="type">void</span> ClassWizard<span class="operator">::</span>accept() { <span class="type"><a href="../qtcore/qbytearray.html">QByteArray</a></span> className <span class="operator">=</span> field(<span class="string">"className"</span>)<span class="operator">.</span>toByteArray(); <span class="type"><a href="../qtcore/qbytearray.html">QByteArray</a></span> baseClass <span class="operator">=</span> field(<span class="string">"baseClass"</span>)<span class="operator">.</span>toByteArray(); <span class="type"><a href="../qtcore/qbytearray.html">QByteArray</a></span> macroName <span class="operator">=</span> field(<span class="string">"macroName"</span>)<span class="operator">.</span>toByteArray(); <span class="type"><a href="../qtcore/qbytearray.html">QByteArray</a></span> baseInclude <span class="operator">=</span> field(<span class="string">"baseInclude"</span>)<span class="operator">.</span>toByteArray(); <span class="type"><a href="../qtcore/qstring.html">QString</a></span> outputDir <span class="operator">=</span> field(<span class="string">"outputDir"</span>)<span class="operator">.</span>toString(); <span class="type"><a href="../qtcore/qstring.html">QString</a></span> header <span class="operator">=</span> field(<span class="string">"header"</span>)<span class="operator">.</span>toString(); <span class="type"><a href="../qtcore/qstring.html">QString</a></span> implementation <span class="operator">=</span> field(<span class="string">"implementation"</span>)<span class="operator">.</span>toString(); <span class="type"><a href="../qtcore/qbytearray.html">QByteArray</a></span> block; <span class="keyword">if</span> (field(<span class="string">"comment"</span>)<span class="operator">.</span>toBool()) { block <span class="operator">+</span><span class="operator">=</span> <span class="string">"/*\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">" "</span> <span class="operator">+</span> header<span class="operator">.</span>toLatin1() <span class="operator">+</span> <span class="char">'\n'</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">"*/\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="char">'\n'</span>; } <span class="keyword">if</span> (field(<span class="string">"protect"</span>)<span class="operator">.</span>toBool()) { block <span class="operator">+</span><span class="operator">=</span> <span class="string">"#ifndef "</span> <span class="operator">+</span> macroName <span class="operator">+</span> <span class="char">'\n'</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">"#define "</span> <span class="operator">+</span> macroName <span class="operator">+</span> <span class="char">'\n'</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="char">'\n'</span>; } <span class="keyword">if</span> (field(<span class="string">"includeBase"</span>)<span class="operator">.</span>toBool()) { block <span class="operator">+</span><span class="operator">=</span> <span class="string">"#include "</span> <span class="operator">+</span> baseInclude <span class="operator">+</span> <span class="char">'\n'</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="char">'\n'</span>; } block <span class="operator">+</span><span class="operator">=</span> <span class="string">"class "</span> <span class="operator">+</span> className; <span class="keyword">if</span> (<span class="operator">!</span>baseClass<span class="operator">.</span>isEmpty()) block <span class="operator">+</span><span class="operator">=</span> <span class="string">" : public "</span> <span class="operator">+</span> baseClass; block <span class="operator">+</span><span class="operator">=</span> <span class="char">'\n'</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">"{\n"</span>; <span class="comment">/* qmake ignore Q_OBJECT */</span> <span class="keyword">if</span> (field(<span class="string">"qobjectMacro"</span>)<span class="operator">.</span>toBool()) { block <span class="operator">+</span><span class="operator">=</span> <span class="string">" Q_OBJECT\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="char">'\n'</span>; } block <span class="operator">+</span><span class="operator">=</span> <span class="string">"public:\n"</span>; <span class="keyword">if</span> (field(<span class="string">"qobjectCtor"</span>)<span class="operator">.</span>toBool()) { block <span class="operator">+</span><span class="operator">=</span> <span class="string">" "</span> <span class="operator">+</span> className <span class="operator">+</span> <span class="string">"(QObject *parent = 0);\n"</span>; } <span class="keyword">else</span> <span class="keyword">if</span> (field(<span class="string">"qwidgetCtor"</span>)<span class="operator">.</span>toBool()) { block <span class="operator">+</span><span class="operator">=</span> <span class="string">" "</span> <span class="operator">+</span> className <span class="operator">+</span> <span class="string">"(QWidget *parent = 0);\n"</span>; } <span class="keyword">else</span> <span class="keyword">if</span> (field(<span class="string">"defaultCtor"</span>)<span class="operator">.</span>toBool()) { block <span class="operator">+</span><span class="operator">=</span> <span class="string">" "</span> <span class="operator">+</span> className <span class="operator">+</span> <span class="string">"();\n"</span>; <span class="keyword">if</span> (field(<span class="string">"copyCtor"</span>)<span class="operator">.</span>toBool()) { block <span class="operator">+</span><span class="operator">=</span> <span class="string">" "</span> <span class="operator">+</span> className <span class="operator">+</span> <span class="string">"(const "</span> <span class="operator">+</span> className <span class="operator">+</span> <span class="string">" &other);\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="char">'\n'</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">" "</span> <span class="operator">+</span> className <span class="operator">+</span> <span class="string">" &operator="</span> <span class="operator">+</span> <span class="string">"(const "</span> <span class="operator">+</span> className <span class="operator">+</span> <span class="string">" &other);\n"</span>; } } block <span class="operator">+</span><span class="operator">=</span> <span class="string">"};\n"</span>; <span class="keyword">if</span> (field(<span class="string">"protect"</span>)<span class="operator">.</span>toBool()) { block <span class="operator">+</span><span class="operator">=</span> <span class="char">'\n'</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">"#endif\n"</span>; } <span class="type"><a href="../qtcore/qfile.html">QFile</a></span> headerFile(outputDir <span class="operator">+</span> <span class="char">'/'</span> <span class="operator">+</span> header); <span class="keyword">if</span> (<span class="operator">!</span>headerFile<span class="operator">.</span>open(<span class="type"><a href="../qtcore/qfile.html">QFile</a></span><span class="operator">::</span>WriteOnly <span class="operator">|</span> <span class="type"><a href="../qtcore/qfile.html">QFile</a></span><span class="operator">::</span>Text)) { <span class="type"><a href="qmessagebox.html">QMessageBox</a></span><span class="operator">::</span>warning(<span class="number">0</span><span class="operator">,</span> <span class="type"><a href="../qtcore/qobject.html">QObject</a></span><span class="operator">::</span>tr(<span class="string">"Simple Wizard"</span>)<span class="operator">,</span> <span class="type"><a href="../qtcore/qobject.html">QObject</a></span><span class="operator">::</span>tr(<span class="string">"Cannot write file %1:\n%2"</span>) <span class="operator">.</span>arg(headerFile<span class="operator">.</span>fileName()) <span class="operator">.</span>arg(headerFile<span class="operator">.</span>errorString())); <span class="keyword">return</span>; } headerFile<span class="operator">.</span>write(block); block<span class="operator">.</span>clear(); <span class="keyword">if</span> (field(<span class="string">"comment"</span>)<span class="operator">.</span>toBool()) { block <span class="operator">+</span><span class="operator">=</span> <span class="string">"/*\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">" "</span> <span class="operator">+</span> implementation<span class="operator">.</span>toLatin1() <span class="operator">+</span> <span class="char">'\n'</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">"*/\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="char">'\n'</span>; } block <span class="operator">+</span><span class="operator">=</span> <span class="string">"#include \""</span> <span class="operator">+</span> header<span class="operator">.</span>toLatin1() <span class="operator">+</span> <span class="string">"\"\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="char">'\n'</span>; <span class="keyword">if</span> (field(<span class="string">"qobjectCtor"</span>)<span class="operator">.</span>toBool()) { block <span class="operator">+</span><span class="operator">=</span> className <span class="operator">+</span> <span class="string">"::"</span> <span class="operator">+</span> className <span class="operator">+</span> <span class="string">"(QObject *parent)\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">" : "</span> <span class="operator">+</span> baseClass <span class="operator">+</span> <span class="string">"(parent)\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">"{\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">"}\n"</span>; } <span class="keyword">else</span> <span class="keyword">if</span> (field(<span class="string">"qwidgetCtor"</span>)<span class="operator">.</span>toBool()) { block <span class="operator">+</span><span class="operator">=</span> className <span class="operator">+</span> <span class="string">"::"</span> <span class="operator">+</span> className <span class="operator">+</span> <span class="string">"(QWidget *parent)\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">" : "</span> <span class="operator">+</span> baseClass <span class="operator">+</span> <span class="string">"(parent)\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">"{\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">"}\n"</span>; } <span class="keyword">else</span> <span class="keyword">if</span> (field(<span class="string">"defaultCtor"</span>)<span class="operator">.</span>toBool()) { block <span class="operator">+</span><span class="operator">=</span> className <span class="operator">+</span> <span class="string">"::"</span> <span class="operator">+</span> className <span class="operator">+</span> <span class="string">"()\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">"{\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">" // missing code\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">"}\n"</span>; <span class="keyword">if</span> (field(<span class="string">"copyCtor"</span>)<span class="operator">.</span>toBool()) { block <span class="operator">+</span><span class="operator">=</span> <span class="string">"\n"</span>; block <span class="operator">+</span><span class="operator">=</span> className <span class="operator">+</span> <span class="string">"::"</span> <span class="operator">+</span> className <span class="operator">+</span> <span class="string">"(const "</span> <span class="operator">+</span> className <span class="operator">+</span> <span class="string">" &other)\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">"{\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">" *this = other;\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">"}\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="char">'\n'</span>; block <span class="operator">+</span><span class="operator">=</span> className <span class="operator">+</span> <span class="string">" &"</span> <span class="operator">+</span> className <span class="operator">+</span> <span class="string">"::operator=(const "</span> <span class="operator">+</span> className <span class="operator">+</span> <span class="string">" &other)\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">"{\n"</span>; <span class="keyword">if</span> (<span class="operator">!</span>baseClass<span class="operator">.</span>isEmpty()) block <span class="operator">+</span><span class="operator">=</span> <span class="string">" "</span> <span class="operator">+</span> baseClass <span class="operator">+</span> <span class="string">"::operator=(other);\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">" // missing code\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">" return *this;\n"</span>; block <span class="operator">+</span><span class="operator">=</span> <span class="string">"}\n"</span>; } } <span class="type"><a href="../qtcore/qfile.html">QFile</a></span> implementationFile(outputDir <span class="operator">+</span> <span class="char">'/'</span> <span class="operator">+</span> implementation); <span class="keyword">if</span> (<span class="operator">!</span>implementationFile<span class="operator">.</span>open(<span class="type"><a href="../qtcore/qfile.html">QFile</a></span><span class="operator">::</span>WriteOnly <span class="operator">|</span> <span class="type"><a href="../qtcore/qfile.html">QFile</a></span><span class="operator">::</span>Text)) { <span class="type"><a href="qmessagebox.html">QMessageBox</a></span><span class="operator">::</span>warning(<span class="number">0</span><span class="operator">,</span> <span class="type"><a href="../qtcore/qobject.html">QObject</a></span><span class="operator">::</span>tr(<span class="string">"Simple Wizard"</span>)<span class="operator">,</span> <span class="type"><a href="../qtcore/qobject.html">QObject</a></span><span class="operator">::</span>tr(<span class="string">"Cannot write file %1:\n%2"</span>) <span class="operator">.</span>arg(implementationFile<span class="operator">.</span>fileName()) <span class="operator">.</span>arg(implementationFile<span class="operator">.</span>errorString())); <span class="keyword">return</span>; } implementationFile<span class="operator">.</span>write(block); <span class="type"><a href="qdialog.html">QDialog</a></span><span class="operator">::</span>accept(); } IntroPage<span class="operator">::</span>IntroPage(<span class="type"><a href="qwidget.html">QWidget</a></span> <span class="operator">*</span>parent) : <span class="type"><a href="qwizardpage.html">QWizardPage</a></span>(parent) { setTitle(tr(<span class="string">"Introduction"</span>)); setPixmap(<span class="type"><a href="qwizard.html">QWizard</a></span><span class="operator">::</span>WatermarkPixmap<span class="operator">,</span> <span class="type"><a href="../qtgui/qpixmap.html">QPixmap</a></span>(<span class="string">":/images/watermark1.png"</span>)); label <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qlabel.html">QLabel</a></span>(tr(<span class="string">"This wizard will generate a skeleton C++ class "</span> <span class="string">"definition, including a few functions. You simply "</span> <span class="string">"need to specify the class name and set a few "</span> <span class="string">"options to produce a header file and an "</span> <span class="string">"implementation file for your new C++ class."</span>)); label<span class="operator">-</span><span class="operator">></span>setWordWrap(<span class="keyword">true</span>); <span class="type"><a href="qvboxlayout.html">QVBoxLayout</a></span> <span class="operator">*</span>layout <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qvboxlayout.html">QVBoxLayout</a></span>; layout<span class="operator">-</span><span class="operator">></span>addWidget(label); setLayout(layout); } ClassInfoPage<span class="operator">::</span>ClassInfoPage(<span class="type"><a href="qwidget.html">QWidget</a></span> <span class="operator">*</span>parent) : <span class="type"><a href="qwizardpage.html">QWizardPage</a></span>(parent) { setTitle(tr(<span class="string">"Class Information"</span>)); setSubTitle(tr(<span class="string">"Specify basic information about the class for which you "</span> <span class="string">"want to generate skeleton source code files."</span>)); setPixmap(<span class="type"><a href="qwizard.html">QWizard</a></span><span class="operator">::</span>LogoPixmap<span class="operator">,</span> <span class="type"><a href="../qtgui/qpixmap.html">QPixmap</a></span>(<span class="string">":/images/logo1.png"</span>)); classNameLabel <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qlabel.html">QLabel</a></span>(tr(<span class="string">"&Class name:"</span>)); classNameLineEdit <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qlineedit.html">QLineEdit</a></span>; classNameLabel<span class="operator">-</span><span class="operator">></span>setBuddy(classNameLineEdit); baseClassLabel <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qlabel.html">QLabel</a></span>(tr(<span class="string">"B&ase class:"</span>)); baseClassLineEdit <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qlineedit.html">QLineEdit</a></span>; baseClassLabel<span class="operator">-</span><span class="operator">></span>setBuddy(baseClassLineEdit); qobjectMacroCheckBox <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qcheckbox.html">QCheckBox</a></span>(tr(<span class="string">"Generate Q_OBJECT &macro"</span>)); groupBox <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qgroupbox.html">QGroupBox</a></span>(tr(<span class="string">"C&onstructor"</span>)); qobjectCtorRadioButton <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qradiobutton.html">QRadioButton</a></span>(tr(<span class="string">"&QObject-style constructor"</span>)); qwidgetCtorRadioButton <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qradiobutton.html">QRadioButton</a></span>(tr(<span class="string">"Q&Widget-style constructor"</span>)); defaultCtorRadioButton <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qradiobutton.html">QRadioButton</a></span>(tr(<span class="string">"&Default constructor"</span>)); copyCtorCheckBox <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qcheckbox.html">QCheckBox</a></span>(tr(<span class="string">"&Generate copy constructor and "</span> <span class="string">"operator="</span>)); defaultCtorRadioButton<span class="operator">-</span><span class="operator">></span>setChecked(<span class="keyword">true</span>); connect(defaultCtorRadioButton<span class="operator">,</span> <span class="operator">&</span><span class="type"><a href="qabstractbutton.html">QAbstractButton</a></span><span class="operator">::</span>toggled<span class="operator">,</span> copyCtorCheckBox<span class="operator">,</span> <span class="operator">&</span><span class="type"><a href="qwidget.html">QWidget</a></span><span class="operator">::</span>setEnabled); registerField(<span class="string">"className*"</span><span class="operator">,</span> classNameLineEdit); registerField(<span class="string">"baseClass"</span><span class="operator">,</span> baseClassLineEdit); registerField(<span class="string">"qobjectMacro"</span><span class="operator">,</span> qobjectMacroCheckBox); registerField(<span class="string">"qobjectCtor"</span><span class="operator">,</span> qobjectCtorRadioButton); registerField(<span class="string">"qwidgetCtor"</span><span class="operator">,</span> qwidgetCtorRadioButton); registerField(<span class="string">"defaultCtor"</span><span class="operator">,</span> defaultCtorRadioButton); registerField(<span class="string">"copyCtor"</span><span class="operator">,</span> copyCtorCheckBox); <span class="type"><a href="qvboxlayout.html">QVBoxLayout</a></span> <span class="operator">*</span>groupBoxLayout <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qvboxlayout.html">QVBoxLayout</a></span>; groupBoxLayout<span class="operator">-</span><span class="operator">></span>addWidget(qobjectCtorRadioButton); groupBoxLayout<span class="operator">-</span><span class="operator">></span>addWidget(qwidgetCtorRadioButton); groupBoxLayout<span class="operator">-</span><span class="operator">></span>addWidget(defaultCtorRadioButton); groupBoxLayout<span class="operator">-</span><span class="operator">></span>addWidget(copyCtorCheckBox); groupBox<span class="operator">-</span><span class="operator">></span>setLayout(groupBoxLayout); <span class="type"><a href="qgridlayout.html">QGridLayout</a></span> <span class="operator">*</span>layout <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qgridlayout.html">QGridLayout</a></span>; layout<span class="operator">-</span><span class="operator">></span>addWidget(classNameLabel<span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">0</span>); layout<span class="operator">-</span><span class="operator">></span>addWidget(classNameLineEdit<span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">1</span>); layout<span class="operator">-</span><span class="operator">></span>addWidget(baseClassLabel<span class="operator">,</span> <span class="number">1</span><span class="operator">,</span> <span class="number">0</span>); layout<span class="operator">-</span><span class="operator">></span>addWidget(baseClassLineEdit<span class="operator">,</span> <span class="number">1</span><span class="operator">,</span> <span class="number">1</span>); layout<span class="operator">-</span><span class="operator">></span>addWidget(qobjectMacroCheckBox<span class="operator">,</span> <span class="number">2</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">1</span><span class="operator">,</span> <span class="number">2</span>); layout<span class="operator">-</span><span class="operator">></span>addWidget(groupBox<span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">1</span><span class="operator">,</span> <span class="number">2</span>); setLayout(layout); } CodeStylePage<span class="operator">::</span>CodeStylePage(<span class="type"><a href="qwidget.html">QWidget</a></span> <span class="operator">*</span>parent) : <span class="type"><a href="qwizardpage.html">QWizardPage</a></span>(parent) { setTitle(tr(<span class="string">"Code Style Options"</span>)); setSubTitle(tr(<span class="string">"Choose the formatting of the generated code."</span>)); setPixmap(<span class="type"><a href="qwizard.html">QWizard</a></span><span class="operator">::</span>LogoPixmap<span class="operator">,</span> <span class="type"><a href="../qtgui/qpixmap.html">QPixmap</a></span>(<span class="string">":/images/logo2.png"</span>)); commentCheckBox <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qcheckbox.html">QCheckBox</a></span>(tr(<span class="string">"&Start generated files with a "</span> <span class="string">"comment"</span>)); commentCheckBox<span class="operator">-</span><span class="operator">></span>setChecked(<span class="keyword">true</span>); protectCheckBox <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qcheckbox.html">QCheckBox</a></span>(tr(<span class="string">"&Protect header file against multiple "</span> <span class="string">"inclusions"</span>)); protectCheckBox<span class="operator">-</span><span class="operator">></span>setChecked(<span class="keyword">true</span>); macroNameLabel <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qlabel.html">QLabel</a></span>(tr(<span class="string">"&Macro name:"</span>)); macroNameLineEdit <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qlineedit.html">QLineEdit</a></span>; macroNameLabel<span class="operator">-</span><span class="operator">></span>setBuddy(macroNameLineEdit); includeBaseCheckBox <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qcheckbox.html">QCheckBox</a></span>(tr(<span class="string">"&Include base class definition"</span>)); baseIncludeLabel <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qlabel.html">QLabel</a></span>(tr(<span class="string">"Base class include:"</span>)); baseIncludeLineEdit <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qlineedit.html">QLineEdit</a></span>; baseIncludeLabel<span class="operator">-</span><span class="operator">></span>setBuddy(baseIncludeLineEdit); connect(protectCheckBox<span class="operator">,</span> <span class="operator">&</span><span class="type"><a href="qabstractbutton.html">QAbstractButton</a></span><span class="operator">::</span>toggled<span class="operator">,</span> macroNameLabel<span class="operator">,</span> <span class="operator">&</span><span class="type"><a href="qwidget.html">QWidget</a></span><span class="operator">::</span>setEnabled); connect(protectCheckBox<span class="operator">,</span> <span class="operator">&</span><span class="type"><a href="qabstractbutton.html">QAbstractButton</a></span><span class="operator">::</span>toggled<span class="operator">,</span> macroNameLineEdit<span class="operator">,</span> <span class="operator">&</span><span class="type"><a href="qwidget.html">QWidget</a></span><span class="operator">::</span>setEnabled); connect(includeBaseCheckBox<span class="operator">,</span> <span class="operator">&</span><span class="type"><a href="qabstractbutton.html">QAbstractButton</a></span><span class="operator">::</span>toggled<span class="operator">,</span> baseIncludeLabel<span class="operator">,</span> <span class="operator">&</span><span class="type"><a href="qwidget.html">QWidget</a></span><span class="operator">::</span>setEnabled); connect(includeBaseCheckBox<span class="operator">,</span> <span class="operator">&</span><span class="type"><a href="qabstractbutton.html">QAbstractButton</a></span><span class="operator">::</span>toggled<span class="operator">,</span> baseIncludeLineEdit<span class="operator">,</span> <span class="operator">&</span><span class="type"><a href="qwidget.html">QWidget</a></span><span class="operator">::</span>setEnabled); registerField(<span class="string">"comment"</span><span class="operator">,</span> commentCheckBox); registerField(<span class="string">"protect"</span><span class="operator">,</span> protectCheckBox); registerField(<span class="string">"macroName"</span><span class="operator">,</span> macroNameLineEdit); registerField(<span class="string">"includeBase"</span><span class="operator">,</span> includeBaseCheckBox); registerField(<span class="string">"baseInclude"</span><span class="operator">,</span> baseIncludeLineEdit); <span class="type"><a href="qgridlayout.html">QGridLayout</a></span> <span class="operator">*</span>layout <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qgridlayout.html">QGridLayout</a></span>; layout<span class="operator">-</span><span class="operator">></span>setColumnMinimumWidth(<span class="number">0</span><span class="operator">,</span> <span class="number">20</span>); layout<span class="operator">-</span><span class="operator">></span>addWidget(commentCheckBox<span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">1</span><span class="operator">,</span> <span class="number">3</span>); layout<span class="operator">-</span><span class="operator">></span>addWidget(protectCheckBox<span class="operator">,</span> <span class="number">1</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">1</span><span class="operator">,</span> <span class="number">3</span>); layout<span class="operator">-</span><span class="operator">></span>addWidget(macroNameLabel<span class="operator">,</span> <span class="number">2</span><span class="operator">,</span> <span class="number">1</span>); layout<span class="operator">-</span><span class="operator">></span>addWidget(macroNameLineEdit<span class="operator">,</span> <span class="number">2</span><span class="operator">,</span> <span class="number">2</span>); layout<span class="operator">-</span><span class="operator">></span>addWidget(includeBaseCheckBox<span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">1</span><span class="operator">,</span> <span class="number">3</span>); layout<span class="operator">-</span><span class="operator">></span>addWidget(baseIncludeLabel<span class="operator">,</span> <span class="number">4</span><span class="operator">,</span> <span class="number">1</span>); layout<span class="operator">-</span><span class="operator">></span>addWidget(baseIncludeLineEdit<span class="operator">,</span> <span class="number">4</span><span class="operator">,</span> <span class="number">2</span>); setLayout(layout); } <span class="type">void</span> CodeStylePage<span class="operator">::</span>initializePage() { <span class="type"><a href="../qtcore/qstring.html">QString</a></span> className <span class="operator">=</span> field(<span class="string">"className"</span>)<span class="operator">.</span>toString(); macroNameLineEdit<span class="operator">-</span><span class="operator">></span>setText(className<span class="operator">.</span>toUpper() <span class="operator">+</span> <span class="string">"_H"</span>); <span class="type"><a href="../qtcore/qstring.html">QString</a></span> baseClass <span class="operator">=</span> field(<span class="string">"baseClass"</span>)<span class="operator">.</span>toString(); includeBaseCheckBox<span class="operator">-</span><span class="operator">></span>setChecked(<span class="operator">!</span>baseClass<span class="operator">.</span>isEmpty()); includeBaseCheckBox<span class="operator">-</span><span class="operator">></span>setEnabled(<span class="operator">!</span>baseClass<span class="operator">.</span>isEmpty()); baseIncludeLabel<span class="operator">-</span><span class="operator">></span>setEnabled(<span class="operator">!</span>baseClass<span class="operator">.</span>isEmpty()); baseIncludeLineEdit<span class="operator">-</span><span class="operator">></span>setEnabled(<span class="operator">!</span>baseClass<span class="operator">.</span>isEmpty()); <span class="type"><a href="../qtcore/qregularexpression.html">QRegularExpression</a></span> rx(<span class="string">"Q[A-Z].*"</span>); <span class="keyword">if</span> (baseClass<span class="operator">.</span>isEmpty()) { baseIncludeLineEdit<span class="operator">-</span><span class="operator">></span>clear(); } <span class="keyword">else</span> <span class="keyword">if</span> (rx<span class="operator">.</span>match(baseClass)<span class="operator">.</span>hasMatch()) { baseIncludeLineEdit<span class="operator">-</span><span class="operator">></span>setText(<span class="char">'<'</span> <span class="operator">+</span> baseClass <span class="operator">+</span> <span class="char">'>'</span>); } <span class="keyword">else</span> { baseIncludeLineEdit<span class="operator">-</span><span class="operator">></span>setText(<span class="char">'"'</span> <span class="operator">+</span> baseClass<span class="operator">.</span>toLower() <span class="operator">+</span> <span class="string">".h\""</span>); } } OutputFilesPage<span class="operator">::</span>OutputFilesPage(<span class="type"><a href="qwidget.html">QWidget</a></span> <span class="operator">*</span>parent) : <span class="type"><a href="qwizardpage.html">QWizardPage</a></span>(parent) { setTitle(tr(<span class="string">"Output Files"</span>)); setSubTitle(tr(<span class="string">"Specify where you want the wizard to put the generated "</span> <span class="string">"skeleton code."</span>)); setPixmap(<span class="type"><a href="qwizard.html">QWizard</a></span><span class="operator">::</span>LogoPixmap<span class="operator">,</span> <span class="type"><a href="../qtgui/qpixmap.html">QPixmap</a></span>(<span class="string">":/images/logo3.png"</span>)); outputDirLabel <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qlabel.html">QLabel</a></span>(tr(<span class="string">"&Output directory:"</span>)); outputDirLineEdit <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qlineedit.html">QLineEdit</a></span>; outputDirLabel<span class="operator">-</span><span class="operator">></span>setBuddy(outputDirLineEdit); headerLabel <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qlabel.html">QLabel</a></span>(tr(<span class="string">"&Header file name:"</span>)); headerLineEdit <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qlineedit.html">QLineEdit</a></span>; headerLabel<span class="operator">-</span><span class="operator">></span>setBuddy(headerLineEdit); implementationLabel <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qlabel.html">QLabel</a></span>(tr(<span class="string">"&Implementation file name:"</span>)); implementationLineEdit <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qlineedit.html">QLineEdit</a></span>; implementationLabel<span class="operator">-</span><span class="operator">></span>setBuddy(implementationLineEdit); registerField(<span class="string">"outputDir*"</span><span class="operator">,</span> outputDirLineEdit); registerField(<span class="string">"header*"</span><span class="operator">,</span> headerLineEdit); registerField(<span class="string">"implementation*"</span><span class="operator">,</span> implementationLineEdit); <span class="type"><a href="qgridlayout.html">QGridLayout</a></span> <span class="operator">*</span>layout <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qgridlayout.html">QGridLayout</a></span>; layout<span class="operator">-</span><span class="operator">></span>addWidget(outputDirLabel<span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">0</span>); layout<span class="operator">-</span><span class="operator">></span>addWidget(outputDirLineEdit<span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">1</span>); layout<span class="operator">-</span><span class="operator">></span>addWidget(headerLabel<span class="operator">,</span> <span class="number">1</span><span class="operator">,</span> <span class="number">0</span>); layout<span class="operator">-</span><span class="operator">></span>addWidget(headerLineEdit<span class="operator">,</span> <span class="number">1</span><span class="operator">,</span> <span class="number">1</span>); layout<span class="operator">-</span><span class="operator">></span>addWidget(implementationLabel<span class="operator">,</span> <span class="number">2</span><span class="operator">,</span> <span class="number">0</span>); layout<span class="operator">-</span><span class="operator">></span>addWidget(implementationLineEdit<span class="operator">,</span> <span class="number">2</span><span class="operator">,</span> <span class="number">1</span>); setLayout(layout); } <span class="type">void</span> OutputFilesPage<span class="operator">::</span>initializePage() { <span class="type"><a href="../qtcore/qstring.html">QString</a></span> className <span class="operator">=</span> field(<span class="string">"className"</span>)<span class="operator">.</span>toString(); headerLineEdit<span class="operator">-</span><span class="operator">></span>setText(className<span class="operator">.</span>toLower() <span class="operator">+</span> <span class="string">".h"</span>); implementationLineEdit<span class="operator">-</span><span class="operator">></span>setText(className<span class="operator">.</span>toLower() <span class="operator">+</span> <span class="string">".cpp"</span>); outputDirLineEdit<span class="operator">-</span><span class="operator">></span>setText(<span class="type"><a href="../qtcore/qdir.html">QDir</a></span><span class="operator">::</span>toNativeSeparators(<span class="type"><a href="../qtcore/qdir.html">QDir</a></span><span class="operator">::</span>tempPath())); } ConclusionPage<span class="operator">::</span>ConclusionPage(<span class="type"><a href="qwidget.html">QWidget</a></span> <span class="operator">*</span>parent) : <span class="type"><a href="qwizardpage.html">QWizardPage</a></span>(parent) { setTitle(tr(<span class="string">"Conclusion"</span>)); setPixmap(<span class="type"><a href="qwizard.html">QWizard</a></span><span class="operator">::</span>WatermarkPixmap<span class="operator">,</span> <span class="type"><a href="../qtgui/qpixmap.html">QPixmap</a></span>(<span class="string">":/images/watermark2.png"</span>)); label <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qlabel.html">QLabel</a></span>; label<span class="operator">-</span><span class="operator">></span>setWordWrap(<span class="keyword">true</span>); <span class="type"><a href="qvboxlayout.html">QVBoxLayout</a></span> <span class="operator">*</span>layout <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qvboxlayout.html">QVBoxLayout</a></span>; layout<span class="operator">-</span><span class="operator">></span>addWidget(label); setLayout(layout); } <span class="type">void</span> ConclusionPage<span class="operator">::</span>initializePage() { <span class="type"><a href="../qtcore/qstring.html">QString</a></span> finishText <span class="operator">=</span> wizard()<span class="operator">-</span><span class="operator">></span>buttonText(<span class="type"><a href="qwizard.html">QWizard</a></span><span class="operator">::</span>FinishButton); finishText<span class="operator">.</span>remove(<span class="char">'&'</span>); label<span class="operator">-</span><span class="operator">></span>setText(tr(<span class="string">"Click %1 to generate the class skeleton."</span>) <span class="operator">.</span>arg(finishText)); } </pre> </div> <!-- @@@dialogs/classwizard/classwizard.cpp --> </div> </div> </div> </div> </div> <div class="footer"> <p> <acronym title="Copyright">©</acronym> 2019 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners.<br/> The documentation provided herein is licensed under the terms of the <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation License version 1.3</a> as published by the Free Software Foundation.<br/> Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. </p> </div> </body> </html>