// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only /*! \previouspage creator-project-creating.html \page creator-file-creating.html \nextpage creator-project-opening.html \title Creating Files \image qtcreator-new-file.webp {New File wizard} Use wizard templates to add individual files to your \l{Creating Projects} {projects}: \list \li \uicontrol {C/C++}: header and source files for new classes. \li \uicontrol {Modeling}: State Chart XML (SCXML) files, Universal Modeling Language (UML) style \l {Modeling}{models}, and scratch models that use a temporary file. \li \uicontrol {Qt}: source and header files for item, table, or list models, \QD forms and a matching classes for Qt Widgets projects, Qt resource files, as well as QML and JavaScript files for Qt Quick projects. \li \uicontrol {GLSL}: fragment and vertex shaders. \li \uicontrol {General}: markdown files, empty files that you can save with any filename extension, and scratch buffers that use temporary files. \li \uicontrol {Java}: class files. \li \uicontrol {Python}: class and script files for Python projects. \li \uicontrol {Nim} (experimental): empty Nim source and script files. \endlist The \uicontrol {New File} dialog shows detailed information about each file wizard template. \section1 C++ Classes The \uicontrol {C++ Class Wizard} allows you to create a C++ header and source file for a new class that you can add to a C++ project. Specify the class name, base class, and header and source files for the class. The wizard supports namespaces. To use a namespace, enter a qualified class name in the \uicontrol {Class name} field. For example: \c MyNamespace::MySubNamespace::MyClass. The wizard suggests existing namespaces and class names as you type. \image qtcreator-cpp-class-wizard.png "Enter Class Name dialog" The names of the header and source file are based on the class name. To change the default suffix of a file, select \uicontrol Edit > \uicontrol Preferences > \uicontrol {C++} > \uicontrol {File Naming}. \image qtcreator-options-cpp-files.png "C++ File Naming preferences" In the \uicontrol {License template} field, you can use \l{Using Variables in Wizards}{predefined wizard variables} to specify the path and filename of the license to use in the source and header files. You can create your own project and class wizards. For more information, see \l{Adding New Custom Wizards}. \section1 Resource Files \QC supports the \l{The Qt Resource System}{Qt Resource System}, which is a platform-independent mechanism for storing files in the application's executable. \image qtcreator-add-resource-wizard.png "New File dialog" The wizard creates a resource collection file (.qrc) that you can manage in the resource editor. \image qtcreator-add-resource.png "Editing resource files" Select \uicontrol {Add Files} to locate and add individual files. To list the folders and files in ascending alphabetic order in the source tree, select \uicontrol {Sort Alphabetically} in the context menu. By default, resources are accessible in the application under the same file name as they have in the source tree, with a \c{:/} prefix, or by a URL with a \c qrc scheme. To specify a path prefix for all files in the \c .qrc file, select \uicontrol {Add Prefix} and enter the prefix in the \uicontrol Prefix field. Some resources need to change based on the user's locale, such as translation files or icons. You can specify a locale in the \uicontrol Language field. Select \uicontrol Remove to remove the selected file from the resource collection. In the \uicontrol {Remove File} dialog, select the \uicontrol {Delete file permanently} check box to remove the file from the file system. To remove files that cannot be found in the file system, select \uicontrol {Remove Missing Files}. The above functions are also available in the context menu in the \uicontrol Projects view. \section1 OpenGL Fragment and Vertex Shaders Qt supports integration with OpenGL implementations on all platforms, which allows you to display hardware accelerated 3D graphics alongside a more conventional user interface. For more information, see \l{Qt GUI}. You can use the QOpenGLShader class to compile OpenGL shaders written in the OpenGL Shading Language (GLSL) and in the OpenGL/ES Shading Language (GLSL/ES). QOpenGLShader and QOpenGLShaderProgram shelter you from the details of compiling and linking vertex and fragment shaders. You can use \QC code editor to write fragment and vertex shaders in GLSL or GLSL/ES. The code editor offers syntax highlighting and code completion for the files. \image qtcreator-new-opengl-file.png "New OpenGL file wizard" */