diff options
| author | Leena Miettinen <riitta-leena.miettinen@qt.io> | 2020-01-23 11:45:07 +0100 |
|---|---|---|
| committer | Leena Miettinen <riitta-leena.miettinen@qt.io> | 2020-01-27 09:05:07 +0000 |
| commit | 5fc456dd2283b2d1e6c4e6d34856052658f34cc4 (patch) | |
| tree | 7a7cd26a33014e401536a149fa47f6586b68c247 /doc/qtcreator/src/python/creator-python-project.qdocinc | |
| parent | c9f90047ac701416e439f492069c1a0bb364fc08 (diff) | |
| download | qt-creator-5fc456dd2283b2d1e6c4e6d34856052658f34cc4.tar.gz | |
Doc: Rearrange files in the doc folder
Source and configuration files for each manual are now located in a
separate subdirectory, with common configuration files in doc/config.
doc
|_config
|_qtcreator
|_qtcreatordev
|_qtdesignstudio
Edit the config files accordingly.
Change-Id: Idc747a7c16e84f3e06add91234dc5fc908e64cc5
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'doc/qtcreator/src/python/creator-python-project.qdocinc')
| -rw-r--r-- | doc/qtcreator/src/python/creator-python-project.qdocinc | 187 |
1 files changed, 187 insertions, 0 deletions
diff --git a/doc/qtcreator/src/python/creator-python-project.qdocinc b/doc/qtcreator/src/python/creator-python-project.qdocinc new file mode 100644 index 0000000000..a082113d7c --- /dev/null +++ b/doc/qtcreator/src/python/creator-python-project.qdocinc @@ -0,0 +1,187 @@ +/**************************************************************************** +** +** Copyright (C) 2020 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt Creator documentation. +** +** 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. +** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** +****************************************************************************/ + +/*! +//! [python project wizards] + + \section2 Creating Widget-Based Qt for Python Applications + + \l {https://doc.qt.io/qtforpython/index.html}{Qt for Python} enables you + to use Qt 5 API in Python applications. You can use the PySide2 module to + gain access to individual Qt modules, such as \l {Qt Core}, \l {Qt GUI}, + and \l {Qt Widgets}. + + The Qt for Python Application wizards generate a \c {.pyproject} file that + lists the files in the Python project and a \c {.py} file that contains + some boilerplate code. In addition, the widget based UI wizard creates a + \c {.ui} file that contains a \QD form, and the Qt Quick Application wizard + creates a \c {.qml} file that contains Qt Quick controls. + + The \c{.pyproject} files are JSON-based configuration files that replace + the previously used \c {.pyqtc} configuration files. You can still open and + use \c {.pyqtc} files, but we recommend that you choose \c{.pyproject} files + for new projects. + + The \uicontrol {Qt for Python - Window (UI file)} wizard enables you to + create a Python project that contains the source file for a class. Specify + the class name, base class, and and source file for the class. + + \image qtcreator-python-wizard-app-window.png + + The wizard adds the imports to the source file to provide + access to the QApplication, the base class you selected in the Qt + Widgets module, and Qt UI tools: + + \badcode + import sys + import os + + from PySide2.QtWidgets import QApplication, QWidget + from PySide2.QtCore import QFile + from PySide2.QtUiTools import QUiLoader + \endcode + + The wizard also adds a main class with the specified name that + inherits from the specified base class: + + \badcode + class MyWidget(QWidget): + def __init__(self): + super(MyWidget, self).__init__() + self.load_ui() + ... + \endcode + + The following lines in the main class load the generated Python class from + the UI file: + + \badcode + def load_ui(self): + loader = QUiLoader() + path = os.path.join(os.path.dirname(__file__), "form.ui") + ui_file = QFile(path) + ui_file.open(QFile.ReadOnly) + loader.load(ui_file, self) + ui_file.close() + \endcode + + Next, the wizard adds a main function, where it creates a + QApplication instance. As Qt can receive arguments from the command line, + you can pass any arguments to the QApplication object. Usually, you do not + need to pass any arguments, and you can use the following approach: + + \badcode + if __name__ == "__main__": + app = QApplication([]) + \endcode + + Next, the wizard instantiates the \c MainWindow class and shows it: + + \badcode + window = MyWidget() + window.show() + ... + \endcode + + Finally, the wizard calls the \c app.exec_() method to enter the Qt + main loop and start executing the Qt code: + + \badcode + sys.exit(app.exec_()) + \endcode + + Open the .ui file in the Design mode to create a widget-based UI in \QD. + + The \uicontrol Window wizard adds similar code to the source file, without + the UI bits. + + The \uicontrol Empty wizard adds similar code to the source file, but it + does not add any classes, so you need to add and instantiate them yourself. + + For more information about the + \uicontrol {Qt for Python - Qt Quick Application - Empty} wizard, see + \l {Creating Qt Quick Based Python Applications}. + + For examples of creating Qt for Python applications, see + \l {https://doc.qt.io/qtforpython/tutorials/index.html} + {Qt for Python Examples and Tutorials}. + +//! [python project wizards] + + +//! [python qml project wizards] + + \section1 Creating Qt Quick Based Python Applications + + The \uicontrol {Qt for Python - Qt Quick Application - Empty} wizard enables + you to create a Python project that contains a main QML file. Specify the + minimum PySide version to run the application. + + \image qtcreator-python-wizard-qml.png + + The wizard adds the following imports to the source file to provide access + to QGuiApplication and QQmlApplicationEngine: + + \badcode + import sys + import os + + from PySide2.QtGui import QGuiApplication + from PySide2.QtQml import QQmlApplicationEngine + + \endcode + + The wizard also adds a main function, where it creates a QGuiApplication + instance and passes system arguments to the QGuiApplication object: + + \badcode + if __name__ == "__main__": + app = QGuiApplication(sys.argv) + ... + \endcode + + The following lines in the main class create a QQmlApplicationEngine + instance and load the generated QML file to the engine object: + + \badcode + engine = QQmlApplicationEngine() + engine.load(os.path.join(os.path.dirname(__file__), "main.qml")) + \endcode + + Finally, the wizard adds code that checks whether the file was successfully + loaded. If loading the file fails, the application exits with an error code. + If loading succeeds, the wizard calls the \c app.exec_() method to enter the + Qt main loop and start executing the Qt code: + + \badcode + if not engine.rootObjects(): + sys.exit(-1) + sys.exit(app.exec_()) + \endcode + + Open the .qml file in the Design mode to design a Qt Quick UI in \QMLD. + +//! [python qml project wizards] +*/ |
