aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/doc/codesnippets/examples/dialogs
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside6/doc/codesnippets/examples/dialogs')
-rw-r--r--sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/classwizard.py254
-rw-r--r--sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/classwizard.qrc11
-rw-r--r--sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/background.pngbin0 -> 22578 bytes
-rw-r--r--sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/banner.pngbin0 -> 3947 bytes
-rw-r--r--sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/logo1.pngbin0 -> 1619 bytes
-rw-r--r--sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/logo2.pngbin0 -> 1619 bytes
-rw-r--r--sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/logo3.pngbin0 -> 1619 bytes
-rw-r--r--sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/watermark1.pngbin0 -> 14516 bytes
-rw-r--r--sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/watermark2.pngbin0 -> 14912 bytes
-rw-r--r--sources/pyside6/doc/codesnippets/examples/dialogs/extension/finddialog.py119
-rw-r--r--sources/pyside6/doc/codesnippets/examples/dialogs/licensewizard/images/logo.pngbin0 -> 1810 bytes
-rw-r--r--sources/pyside6/doc/codesnippets/examples/dialogs/licensewizard/images/watermark.pngbin0 -> 34998 bytes
-rw-r--r--sources/pyside6/doc/codesnippets/examples/dialogs/licensewizard/licensewizard.h173
-rw-r--r--sources/pyside6/doc/codesnippets/examples/dialogs/licensewizard/licensewizard.qrc6
-rw-r--r--sources/pyside6/doc/codesnippets/examples/dialogs/standarddialogs/dialog.cpp80
-rw-r--r--sources/pyside6/doc/codesnippets/examples/dialogs/tabdialog/tabdialog.cpp193
16 files changed, 836 insertions, 0 deletions
diff --git a/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/classwizard.py b/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/classwizard.py
new file mode 100644
index 000000000..08032cf2a
--- /dev/null
+++ b/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/classwizard.py
@@ -0,0 +1,254 @@
+/****************************************************************************
+**
+** 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$
+**
+****************************************************************************/
+
+//! [0] //! [1]
+def __init__(self, parent):
+ QWizard.__init__(self, parent):
+ self.addPage(IntroPage())
+ self.addPage(ClassInfoPage())
+ self.addPage(CodeStylePage())
+ self.addPage(OutputFilesPage())
+ self.addPage(ConclusionPage())
+//! [0]
+
+ self.setPixmap(QWizard.BannerPixmap, QPixmap(":/images/banner.png"))
+ self.setPixmap(QWizard.BackgroundPixmap, QPixmap(":/images/background.png"))
+
+ self.setWindowTitle(self.tr("Class Wizard"))
+//! [2]
+
+//! [1] //! [2]
+
+//! [3]
+def accept(self):
+//! [3] //! [4]
+ className = self.field("className")
+ baseClass = self.field("baseClass")
+ macroName = self.field("macroName")
+ baseInclude = self.field("baseInclude")
+
+ outputDir = self.field("outputDir")
+ header = self.field("header")
+ implementation = self.field("implementation")
+//! [4]
+
+...
+
+//! [5]
+ QDialog.accept(self)
+//! [5] //! [6]
+}
+//! [6]
+
+//! [7]
+class IntroPage (QWizardPage):
+
+ def __init__(self, parent):
+ QWizardPage.__init__(self, parent)
+
+ self.setTitle(tr("Introduction"))
+ self.setPixmap(QWizard.WatermarkPixmap, QPixmap(":/images/watermark1.png"))
+
+ label = QLabel(self.tr("This wizard will generate a skeleton C++ class " \
+ "definition, including a few functions. You simply " \
+ "need to specify the class name and set a few " \
+ "options to produce a header file and an " \
+ "implementation file for your new C++ class."))
+ label.setWordWrap(True)
+
+ layout = QVBoxLayout()
+ layout.addWidget(label)
+ self.setLayout(layout)
+}
+//! [7]
+
+//! [8] //! [9]
+class ClassInfoPage(QWizardPage):
+
+ def __init__(self, parent):
+ QWizardPage.__init__(self, parent)
+//! [8]
+ self.setTitle(self.tr("Class Information"))
+ self.setSubTitle(self.tr("Specify basic information about the class for which you " \
+ "want to generate skeleton source code files."))
+ self.setPixmap(QWizard.LogoPixmap, QPixmap(":/images/logo1.png"))
+
+//! [10]
+ classNameLabel = QLabel(self.tr("&Class name:"))
+ classNameLineEdit = QLineEdit()
+ classNameLabel.setBuddy(classNameLineEdit)
+
+ baseClassLabel = QLabel(self.tr("B&ase class:"))
+ baseClassLineEdit = QLineEdit()
+ baseClassLabel.setBuddy(baseClassLineEdit)
+
+ qobjectMacroCheckBox = QCheckBox(self.tr("Generate Q_OBJECT &macro"))
+
+//! [10]
+ groupBox = QGroupBox(self.tr("C&onstructor"))
+//! [9]
+
+ qobjectCtorRadioButton = QRadioButton(self.tr("&QObject-style constructor"))
+ qwidgetCtorRadioButton = QRadioButton(self.tr("Q&Widget-style constructor"))
+ defaultCtorRadioButton = QRadioButton(self.tr("&Default constructor"))
+ copyCtorCheckBox = QCheckBox(self.tr("&Generate copy constructor and operator="))
+
+ defaultCtorRadioButton.setChecked(True)
+
+ defaultCtorRadioButton.toggled[bool].connect(copyCtorCheckBox.setEnabled)
+
+//! [11] //! [12]
+ registerField("className*", classNameLineEdit)
+ registerField("baseClass", baseClassLineEdit)
+ registerField("qobjectMacro", qobjectMacroCheckBox)
+//! [11]
+ registerField("qobjectCtor", qobjectCtorRadioButton)
+ registerField("qwidgetCtor", qwidgetCtorRadioButton)
+ registerField("defaultCtor", defaultCtorRadioButton)
+ registerField("copyCtor", copyCtorCheckBox)
+
+ groupBoxLayout = QVBoxLayout()
+//! [12]
+ groupBoxLayout.addWidget(qobjectCtorRadioButton)
+ groupBoxLayout.addWidget(qwidgetCtorRadioButton)
+ groupBoxLayout.addWidget(defaultCtorRadioButton)
+ groupBoxLayout.addWidget(copyCtorCheckBox)
+ groupBox.setLayout(groupBoxLayout)
+
+ layout = QGridLayout()
+ layout.addWidget(classNameLabel, 0, 0)
+ layout.addWidget(classNameLineEdit, 0, 1)
+ layout.addWidget(baseClassLabel, 1, 0)
+ layout.addWidget(baseClassLineEdit, 1, 1)
+ layout.addWidget(qobjectMacroCheckBox, 2, 0, 1, 2)
+ layout.addWidget(groupBox, 3, 0, 1, 2)
+ self.setLayout(layout)
+//! [13]
+
+//! [13]
+
+//! [14]
+class CodeStylePage(QWizardPage):
+
+ def __init__(self, parent):
+ QWizardPage.__init__(self, parent)
+ self.setTitle(tr("Code Style Options"))
+ self.setSubTitle(tr("Choose the formatting of the generated code."))
+ self.setPixmap(QWizard.LogoPixmap, QPixmap(":/images/logo2.png"))
+
+ commentCheckBox = QCheckBox(self.tr("&Start generated files with a comment"))
+//! [14]
+ commentCheckBox.setChecked(True)
+
+ protectCheckBox = QCheckBox(self.tr("&Protect header file against multiple " \
+ "inclusions"))
+ protectCheckBox.setChecked(True)
+
+ macroNameLabel = QLabel(self.tr("&Macro name:"))
+ macroNameLineEdit = QLineEdit()
+ macroNameLabel.setBuddy(macroNameLineEdit)
+
+ includeBaseCheckBox = QCheckBox(self.tr("&Include base class definition"))
+ baseIncludeLabel = QLabel(self.tr("Base class include:"))
+ baseIncludeLineEdit = QLineEdit()
+ baseIncludeLabel.setBuddy(baseIncludeLineEdit)
+
+ protectCheckBox.toggled[bool].connect(macroNameLabel.setEnabled)
+ protectCheckBox.toggled[bool].connect(macroNameLineEdit.setEnabled)
+ includeBaseCheckBox.toggled[bool].connect(baseIncludeLabel.setEnabled)
+ includeBaseCheckBox.toggled[bool].connect(baseIncludeLineEdit.setEnabled)
+
+ self.registerField("comment", commentCheckBox)
+ self.registerField("protect", protectCheckBox)
+ self.registerField("macroName", macroNameLineEdit)
+ self.registerField("includeBase", includeBaseCheckBox)
+ self.registerField("baseInclude", baseIncludeLineEdit)
+
+ layout = QGridLayout()
+ layout.setColumnMinimumWidth(0, 20)
+ layout.addWidget(commentCheckBox, 0, 0, 1, 3)
+ layout.addWidget(protectCheckBox, 1, 0, 1, 3)
+ layout.addWidget(macroNameLabel, 2, 1)
+ layout.addWidget(macroNameLineEdit, 2, 2)
+ layout.addWidget(includeBaseCheckBox, 3, 0, 1, 3)
+ layout.addWidget(baseIncludeLabel, 4, 1)
+ layout.addWidget(baseIncludeLineEdit, 4, 2)
+//! [15]
+ self.setLayout(layout)
+}
+//! [15]
+
+//! [16]
+ def initializePage(self):
+ className = self.field("className")
+ self.macroNameLineEdit.setText(className.upper() + "_H")
+
+ baseClass = self.field("baseClass")
+
+ self.includeBaseCheckBox.setChecked(len(baseClass))
+ self.includeBaseCheckBox.setEnabled(len(baseClass))
+ self.baseIncludeLabel.setEnabled(len(baseClass))
+ self.baseIncludeLineEdit.setEnabled(len(baseClass))
+
+ if not baseClass:
+ self.baseIncludeLineEdit.clear()
+ elsif QRegExp("Q[A-Z].*").exactMatch(baseClass):
+ baseIncludeLineEdit.setText("<" + baseClass + ">")
+ else:
+ baseIncludeLineEdit.setText("\"" + baseClass.lower() + ".h\"")
+//! [16]
+
+//! [17]
+ def initializePage(self):
+ className = field("className")
+ self.headerLineEdit.setText(className.lower() + ".h")
+ self.implementationLineEdit.setText(className.lower() + ".cpp")
+ self.outputDirLineEdit.setText(QDir.convertSeparators(QDir.tempPath()))
+//! [17]
diff --git a/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/classwizard.qrc b/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/classwizard.qrc
new file mode 100644
index 000000000..41a5ddc7d
--- /dev/null
+++ b/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/classwizard.qrc
@@ -0,0 +1,11 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file>images/background.png</file>
+ <file>images/banner.png</file>
+ <file>images/logo1.png</file>
+ <file>images/logo2.png</file>
+ <file>images/logo3.png</file>
+ <file>images/watermark1.png</file>
+ <file>images/watermark2.png</file>
+</qresource>
+</RCC>
diff --git a/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/background.png b/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/background.png
new file mode 100644
index 000000000..44c7badb8
--- /dev/null
+++ b/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/background.png
Binary files differ
diff --git a/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/banner.png b/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/banner.png
new file mode 100644
index 000000000..3169152b8
--- /dev/null
+++ b/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/banner.png
Binary files differ
diff --git a/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/logo1.png b/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/logo1.png
new file mode 100644
index 000000000..f9b594aaf
--- /dev/null
+++ b/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/logo1.png
Binary files differ
diff --git a/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/logo2.png b/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/logo2.png
new file mode 100644
index 000000000..5dcbd4669
--- /dev/null
+++ b/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/logo2.png
Binary files differ
diff --git a/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/logo3.png b/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/logo3.png
new file mode 100644
index 000000000..9fd3ea235
--- /dev/null
+++ b/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/logo3.png
Binary files differ
diff --git a/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/watermark1.png b/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/watermark1.png
new file mode 100644
index 000000000..0091f5c17
--- /dev/null
+++ b/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/watermark1.png
Binary files differ
diff --git a/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/watermark2.png b/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/watermark2.png
new file mode 100644
index 000000000..3b88f2e36
--- /dev/null
+++ b/sources/pyside6/doc/codesnippets/examples/dialogs/classwizard/images/watermark2.png
Binary files differ
diff --git a/sources/pyside6/doc/codesnippets/examples/dialogs/extension/finddialog.py b/sources/pyside6/doc/codesnippets/examples/dialogs/extension/finddialog.py
new file mode 100644
index 000000000..fc007ab85
--- /dev/null
+++ b/sources/pyside6/doc/codesnippets/examples/dialogs/extension/finddialog.py
@@ -0,0 +1,119 @@
+############################################################################
+##
+## Copyright (C) 2016 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the examples of Qt for Python.
+##
+## $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$
+##
+############################################################################
+
+
+from PySide6.QtGui import *
+
+//! [0]
+def __init__(self, parent):
+ QDialog.__init__(self, parent)
+ label = QLabel(self.tr("Find &what:"))
+ lineEdit = QLineEdit()
+ label.setBuddy(lineEdit)
+
+ caseCheckBox = QCheckBox(self.tr("Match &case"))
+ fromStartCheckBox = QCheckBox(self.tr("Search from &start"))
+ fromStartCheckBox.setChecked(True)
+
+//! [1]
+ findButton = QPushButton(self.tr("&Find"))
+ findButton.setDefault(True)
+
+ moreButton = QPushButton(self.tr("&More"))
+ moreButton.setCheckable(True)
+//! [0]
+ moreButton.setAutoDefault(False)
+
+ buttonBox = QDialogButtonBox(Qt.Vertical)
+ buttonBox.addButton(findButton, QDialogButtonBox.ActionRole)
+ buttonBox.addButton(moreButton, QDialogButtonBox.ActionRole)
+//! [1]
+
+//! [2]
+ extension = QWidget()
+
+ wholeWordsCheckBox = QCheckBox(self.tr("&Whole words"))
+ backwardCheckBox = QCheckBox(self.tr("Search &backward"))
+ searchSelectionCheckBox = QCheckBox(self.tr("Search se&lection"))
+//! [2]
+
+//! [3]
+ moreButton.toggled[bool].connect(extension.setVisible)
+
+ extensionLayout = QVBoxLayout()
+ extensionLayout.setMargin(0)
+ extensionLayout.addWidget(wholeWordsCheckBox)
+ extensionLayout.addWidget(backwardCheckBox)
+ extensionLayout.addWidget(searchSelectionCheckBox)
+ extension.setLayout(extensionLayout)
+//! [3]
+
+//! [4]
+ topLeftLayout = QHBoxLayout()
+ topLeftLayout.addWidget(label)
+ topLeftLayout.addWidget(lineEdit)
+
+ leftLayout = QVBoxLayout()
+ leftLayout.addLayout(topLeftLayout)
+ leftLayout.addWidget(caseCheckBox)
+ leftLayout.addWidget(fromStartCheckBox)
+ leftLayout.addSself.tretch(1)
+
+ mainLayout = QGridLayout()
+ mainLayout.setSizeConsself.traint(QLayout.SetFixedSize)
+ mainLayout.addLayout(leftLayout, 0, 0)
+ mainLayout.addWidget(buttonBox, 0, 1)
+ mainLayout.addWidget(extension, 1, 0, 1, 2)
+ setLayout(mainLayout)
+
+ setWindowTitle(self.tr("Extension"))
+//! [4] //! [5]
+ extension.hide()
+//! [5]
diff --git a/sources/pyside6/doc/codesnippets/examples/dialogs/licensewizard/images/logo.png b/sources/pyside6/doc/codesnippets/examples/dialogs/licensewizard/images/logo.png
new file mode 100644
index 000000000..56f17a3e5
--- /dev/null
+++ b/sources/pyside6/doc/codesnippets/examples/dialogs/licensewizard/images/logo.png
Binary files differ
diff --git a/sources/pyside6/doc/codesnippets/examples/dialogs/licensewizard/images/watermark.png b/sources/pyside6/doc/codesnippets/examples/dialogs/licensewizard/images/watermark.png
new file mode 100644
index 000000000..124a05068
--- /dev/null
+++ b/sources/pyside6/doc/codesnippets/examples/dialogs/licensewizard/images/watermark.png
Binary files differ
diff --git a/sources/pyside6/doc/codesnippets/examples/dialogs/licensewizard/licensewizard.h b/sources/pyside6/doc/codesnippets/examples/dialogs/licensewizard/licensewizard.h
new file mode 100644
index 000000000..f0be5fa60
--- /dev/null
+++ b/sources/pyside6/doc/codesnippets/examples/dialogs/licensewizard/licensewizard.h
@@ -0,0 +1,173 @@
+/****************************************************************************
+**
+** 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$
+**
+****************************************************************************/
+
+#ifndef LICENSEWIZARD_H
+#define LICENSEWIZARD_H
+
+#include <QWizard>
+
+QT_BEGIN_NAMESPACE
+class QCheckBox;
+class QLabel;
+class QLineEdit;
+class QRadioButton;
+QT_END_NAMESPACE
+
+//! [0] //! [1]
+class LicenseWizard (QWizard):
+//! [0]
+//! [2]
+ Page_Intro = 1
+ Page_Evaluate = 2
+ Page_Register = 3
+ Page_Details = 4
+ Page_Conclusion = 5
+//! [2]
+
+ def __init__(self, parent):
+ ...
+
+ def showHelp(self):
+ ...
+//! [3]
+
+//! [1] //! [3]
+
+//! [4]
+class IntroPage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ IntroPage(QWidget *parent = 0);
+
+ int nextId() const;
+
+private:
+ QLabel *topLabel;
+ QRadioButton *registerRadioButton;
+ QRadioButton *evaluateRadioButton;
+};
+//! [4]
+
+//! [5]
+class EvaluatePage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ EvaluatePage(QWidget *parent = 0);
+
+ int nextId() const;
+
+private:
+ QLabel *nameLabel;
+ QLabel *emailLabel;
+ QLineEdit *nameLineEdit;
+ QLineEdit *emailLineEdit;
+};
+//! [5]
+
+class RegisterPage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ RegisterPage(QWidget *parent = 0);
+
+ int nextId() const;
+
+private:
+ QLabel *nameLabel;
+ QLabel *upgradeKeyLabel;
+ QLineEdit *nameLineEdit;
+ QLineEdit *upgradeKeyLineEdit;
+};
+
+class DetailsPage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ DetailsPage(QWidget *parent = 0);
+
+ int nextId() const;
+
+private:
+ QLabel *companyLabel;
+ QLabel *emailLabel;
+ QLabel *postalLabel;
+ QLineEdit *companyLineEdit;
+ QLineEdit *emailLineEdit;
+ QLineEdit *postalLineEdit;
+};
+
+//! [6]
+class ConclusionPage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ ConclusionPage(QWidget *parent = 0);
+
+ void initializePage();
+ int nextId() const;
+ void setVisible(bool visible);
+
+private slots:
+ void printButtonClicked();
+
+private:
+ QLabel *bottomLabel;
+ QCheckBox *agreeCheckBox;
+};
+//! [6]
+
+#endif
diff --git a/sources/pyside6/doc/codesnippets/examples/dialogs/licensewizard/licensewizard.qrc b/sources/pyside6/doc/codesnippets/examples/dialogs/licensewizard/licensewizard.qrc
new file mode 100644
index 000000000..b06993851
--- /dev/null
+++ b/sources/pyside6/doc/codesnippets/examples/dialogs/licensewizard/licensewizard.qrc
@@ -0,0 +1,6 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file>images/logo.png</file>
+ <file>images/watermark.png</file>
+</qresource>
+</RCC>
diff --git a/sources/pyside6/doc/codesnippets/examples/dialogs/standarddialogs/dialog.cpp b/sources/pyside6/doc/codesnippets/examples/dialogs/standarddialogs/dialog.cpp
new file mode 100644
index 000000000..db11e22f8
--- /dev/null
+++ b/sources/pyside6/doc/codesnippets/examples/dialogs/standarddialogs/dialog.cpp
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the examples of Qt for Python.
+**
+** $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$
+**
+****************************************************************************/
+
+//! [0]
+ i, ok = QInputDialog().getInteger(self, "QInputDialog().getInteger()",
+ "Percentage:", 25, 0, 100, 1)
+ if ok:
+ self.integerLabel.setText("{}%".format(i))
+//! [0]
+
+//! [1]
+ d, ok = QInputDialog().getDouble(self, "QInputDialog().getDouble()",
+ "Amount:", 37.56, -10000, 10000, 2)
+ if ok:
+ doubleLabel.setText("${}".format())
+//! [1]
+
+//! [2]
+ items = ["Spring", "Summer", "Fall", "Winter"]
+
+ item, ok = QInputDialog().getItem(self, "QInputDialog().getItem()",
+ "Season:", items, 0, False)
+ if ok and not item.isEmpty():
+ itemLabel.setText(item)
+//! [2]
+
+//! [3]
+ text, ok = QInputDialog().getText(self, "QInputDialog().getText()",
+ "User name:", QLineEdit.Normal,
+ QDir().home().dirName())
+ if ok and text:
+ textLabel.setText(text)
+//! [3]
diff --git a/sources/pyside6/doc/codesnippets/examples/dialogs/tabdialog/tabdialog.cpp b/sources/pyside6/doc/codesnippets/examples/dialogs/tabdialog/tabdialog.cpp
new file mode 100644
index 000000000..4fff4d631
--- /dev/null
+++ b/sources/pyside6/doc/codesnippets/examples/dialogs/tabdialog/tabdialog.cpp
@@ -0,0 +1,193 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of Qt for Python.
+**
+** $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$
+**
+****************************************************************************/
+
+//! [0]
+class TabDialog (QDialog):
+ def __init__(self, fileName, parent = None):
+ QDialog.__init__(self, parent)
+ fileInfo = QFileInfo(fileName)
+
+ self.tabWidget = QTabWidget()
+ self.tabWidget.addTab(GeneralTab(fileInfo), "General")
+ self.tabWidget.addTab(PermissionsTab(fileInfo), "Permissions")
+ self.tabWidget.addTab(ApplicationsTab(fileInfo), "Applications")
+//! [0]
+
+//! [1] //! [2]
+ self.buttonBox = QDialogButtonBox(QDialogButtonBox.Ok
+//! [1] //! [3]
+ | QDialogButtonBox.Cancel)
+
+ self.buttonBox.accepted.connect(self.accept)
+ self.buttonBox.rejected.connect(self.reject)
+//! [2] //! [3]
+
+//! [4]
+ mainLayout = QVBoxLayout()
+ mainLayout.addWidget(tabWidget)
+ mainLayout.addWidget(buttonBox)
+ self.setLayout(mainLayout)
+//! [4]
+
+//! [5]
+ self.setWindowTitle("Tab Dialog")
+//! [5]
+
+//! [6]
+class GeneralTab (QWidget):
+ def __init__(self, fileInfo, parent = None):
+ QWidget.__init__(self, parent)
+ fileNameLabel = QLabel("File Name:")
+ fileNameEdit = QLineEdit(fileInfo.fileName())
+
+ pathLabel = QLabel("Path:")
+ pathValueLabel = QLabel(fileInfo.absoluteFilePath())
+ pathValueLabel.setFrameStyle(QFrame.Panel | QFrame.Sunken)
+
+ sizeLabel = QLabel("Size:")
+ size = fileInfo.size()/1024
+ sizeValueLabel = QLabel("%d K" % size)
+ sizeValueLabel.setFrameStyle(QFrame.Panel | QFrame.Sunken)
+
+ lastReadLabel = QLabel("Last Read:")
+ lastReadValueLabel = QLabel(fileInfo.lastRead().toString())
+ lastReadValueLabel.setFrameStyle(QFrame.Panel | QFrame.Sunken)
+
+ lastModLabel = QLabel("Last Modified:")
+ lastModValueLabel = QLabel(fileInfo.lastModified().toString())
+ lastModValueLabel.setFrameStyle(QFrame.Panel | QFrame.Sunken)
+
+ mainLayout = QVBoxLayout()
+ mainLayout.addWidget(fileNameLabel)
+ mainLayout.addWidget(fileNameEdit)
+ mainLayout.addWidget(pathLabel)
+ mainLayout.addWidget(pathValueLabel)
+ mainLayout.addWidget(sizeLabel)
+ mainLayout.addWidget(sizeValueLabel)
+ mainLayout.addWidget(lastReadLabel)
+ mainLayout.addWidget(lastReadValueLabel)
+ mainLayout.addWidget(lastModLabel)
+ mainLayout.addWidget(lastModValueLabel)
+ mainLayout.addStretch(1)
+ self.setLayout(mainLayout)
+//! [6]
+
+//! [7]
+class PermissionsTab (QWidget):
+ def __init__(self, fileInfo, parent = None):
+ QWidget.__init__(self, parent)
+ permissionsGroup = QGroupBox("Permissions")
+
+ readable = QCheckBox("Readable")
+ if fileInfo.isReadable():
+ readable.setChecked(True)
+
+ writable = QCheckBox("Writable")
+ if fileInfo.isWritable():
+ writable.setChecked(True)
+
+ executable = QCheckBox("Executable")
+ if fileInfo.isExecutable():
+ executable.setChecked(True)
+
+ ownerGroup = QGroupBox("Ownership")
+
+ ownerLabel = QLabel("Owner")
+ ownerValueLabel = QLabel(fileInfo.owner())
+ ownerValueLabel.setFrameStyle(QFrame.Panel | QFrame.Sunken)
+
+ groupLabel = QLabel("Group")
+ groupValueLabel = QLabel(fileInfo.group())
+ groupValueLabel.setFrameStyle(QFrame.Panel | QFrame.Sunken)
+
+ permissionsLayout = QVBoxLayout()
+ permissionsLayout.addWidget(readable)
+ permissionsLayout.addWidget(writable)
+ permissionsLayout.addWidget(executable)
+ permissionsGroup.setLayout(permissionsLayout)
+
+ ownerLayout = QVBoxLayout()
+ ownerLayout.addWidget(ownerLabel)
+ ownerLayout.addWidget(ownerValueLabel)
+ ownerLayout.addWidget(groupLabel)
+ ownerLayout.addWidget(groupValueLabel)
+ ownerGroup.setLayout(ownerLayout)
+
+ mainLayout = QVBoxLayout()
+ mainLayout.addWidget(permissionsGroup)
+ mainLayout.addWidget(ownerGroup)
+ mainLayout.addStretch(1)
+ self.setLayout(mainLayout)
+//! [7]
+
+//! [8]
+class ApplicationsTab (QWidget):
+ def __init__(self, fileInfo, parent = None):
+ QWidget.__init__(self, parent)
+ topLabel = QLabel("Open with:")
+
+ applicationsListBox = QListWidget()
+ applications = []
+
+ for i in range(30):
+ applications.append("Application %d" %s i)
+ applicationsListBox.insertItems(0, applications)
+
+ if fileInfo.suffix().isEmpty():
+ alwaysCheckBox = QCheckBox("Always use this application to open this type of file")
+ else:
+ alwaysCheckBox = QCheckBox("Always use this application to open files with the extension '%s'" % fileInfo.suffix())
+
+ layout = QVBoxLayout()
+ layout.addWidget(topLabel)
+ layout.addWidget(applicationsListBox)
+ layout.addWidget(alwaysCheckBox)
+ self.setLayout(layout)
+//! [8]