is a cross-platform
In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
which is part of the Qt SDK. It includes a visual debugger and an integrated GUI layout and forms designer. The editor's features includes syntax highlighting
Syntax highlighting is a feature of some text editors that display text—especially source code—in different colors and fonts according to the category of terms. This feature eases writing in a structured language such as a programming language or a markup language as both structures and...
and autocompletion, but not tabs
In the area of graphical user interfaces , a tabbed document interface is one that allows multiple documents to be contained within a single window, using tabs as a navigational widget for switching between sets of documents...
. Qt Creator uses the C++ compiler from the GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...
. On Windows it can use MinGW
MinGW , formerly mingw32, is a native software port of the GNU Compiler Collection and GNU Binutils for use in the development of native Microsoft Windows applications; MinGW can function either as a cross compiler targeting Windows or as a native toolchain run on Windows itself...
or MSVC with the default install and can also use cdb when compiled from source.
Qt Creator uses a cross platform project format (.pro) to allow a team of developers to share a project across different development platforms and use a common tool for development and debugging.
A project can include:
- files grouped together
- custom build steps
- included forms and resource files
- settings for running applications
A project can be created from scratch or imported from an existing project. If created from scratch, Qt Creator generates all the necessary files, depending on the type of project. For example, if it is a graphical user interface (GUI) application, Qt Creator generates an empty .ui file that can be modified with the integrated Qt Designer.
Qt Creator is integrated with cross-platform systems for build automation: qmake
. In addition, generic projects that do not use qmake or CMake can be imported, and Qt Creator can ignore the build system.
Qt Creator includes a code editor and integrates Nokia's Qt Designer for designing and building graphical user interfaces (GUIs) from Qt widgets.
As an IDE, Qt Creator differs from a text editor in that it knows how to build and run applications. It understands the C++
languages as code, not just as plain text. This allows it to:
- Enable you to write well formatted code
- Anticipate what you are going to write and complete the code
- Display inline error and warning messages
- Enable you to semantically navigate to classes, functions, and symbols
- Provide you with context-sensitive help on classes, functions, and symbols
- Rename symbols in an intelligent way, so that other symbols with the same name that belong to other scopes are not renamed
- Show you the locations in code where a function is declared or called
Qt Creator provides two integrated visual editors, Qt Designer and Qt Quick Designer.
Qt Designer is a tool for designing and building graphical user interfaces (GUIs) from Qt widgets. You can compose and customize your widgets or dialogs and test them using different styles and resolutions.
Widgets and forms created with Qt Designer are integrated seamlessly with programmed code, using the Qt signals and slots mechanism, that lets you easily assign behavior to graphical elements. All properties set in Qt Designer can be changed dynamically within the code. Furthermore, features like widget promotion and custom plugins allow you to use your own widgets with Qt Designer.
UIs that use widgets are clearly structured and enforce a platform look and feel, which makes them useful for traditional applications. However, they are static, and do not fully make use of the large high-resolution screens, touch input, and significant graphics power that are becoming common in portable consumer devices, such as mobile phones, media players, set-top boxes, and netbooks.
Qt Quick Designer allows you to easily develop animations by using a declarative programming language called QML. In QML, a user interface is specified as a tree of objects with properties.
You use a visual editor to create items, screens, and applications, as well as define changes in their state, transitions from one state to another, and user actions that change the states. Qt Quick Designer generates the necessary code for you.
You can use the code editor to write code in Qt C++
or in the QML
declarative programming language.
Also generic syntax highlighting is provided for many other languages.
Qt Creator provides support for building and running Qt applications for desktop
environments (Windows, Linux, FreeBSD and Mac OS) and mobile
Symbian is a mobile operating system and computing platform designed for smartphones and currently maintained by Accenture. The Symbian platform is the successor to Symbian OS and Nokia Series 60; unlike Symbian OS, which needed an additional user interface system, Symbian includes a user...
Maemo is a software platform developed by the Maemo community for smartphones and Internet tablets. It is based on the Debian Linux distribution, but has no relation to it...
, and MeeGo
MeeGo is a Linux-based open source mobile operating system project. Primarily targeted at mobile devices and information appliances in the consumer electronics market, MeeGo is designed to act as an operating system for hardware platforms such as netbooks, entry-level desktops, nettops, tablet...
). Build settings allow you to switch between build targets.
When you build an application for a mobile device target with a device connected to a development PC, Qt Creator generates an installation package, installs it on the device, and executes it. Installation packages can be published on the Ovi Store
Ovi by Nokia is the brand for Nokia's Internet services. The Ovi services can be used from a mobile device, computer or via the web. Nokia focuses on five key service areas: Games, Maps, Media, Messaging and Music. Nokia's aim with Ovi is to include third party developers, such as operators and...
. For Symbian devices, the packages must be signed.
Qt Creator is integrated with a set of helpful tools, such as version control systems and Qt Simulator.
Version Control Systems
A recommended way to build a project is to use a version control system. Qt Creator uses the version control system's command line clients to access your repositories. The following version control systems are supported:
Git is a distributed revision control system with an emphasis on speed. Git was initially designed and developed by Linus Torvalds for Linux kernel development. Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on...
Perforce is a commercial, proprietary, centralized revision control system developed by Perforce Software, Inc.-Architecture:Perforce is a client/server system.The server manages a central database and a master repository of file versions....
The Concurrent Versions System , also known as the Concurrent Versioning System, is a client-server free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers ...
Mercurial is a cross-platform, distributed revision control tool for software developers. It is mainly implemented using the Python programming language, but includes a binary diff implementation written in C. It is supported on Windows and Unix-like systems, such as FreeBSD, Mac OS X and Linux...
The functions available to you in Qt Creator depend on the version control system, though basic functions are available for all the supported systems. Basic functions include comparing files with the latest versions stored in the repository and displaying the differences, viewing versioning history and change details, annotating files, and committing and reverting changes.
Qt Simulator can be used to test Qt applications that are intended for mobile devices in an environment similar to that of the device. You can change the information that the device has about its configuration and environment.
The Qt Simulator is installed as part of the Nokia Qt SDK. After it is installed, you can select it as a build target in Qt Creator.
Qt Creator does not include a debugger. It provides a debugger plugin that acts as an interface between the Qt Creator core and external native debuggers to debug the C++ language. Qt Creator displays the raw information provided by the native debuggers in a simplified manner. Debuggers supported are:
- GNU Symbolic Debugger (gdb)
- Microsoft Console Debugger (CDB)
- internal Java Script debugger
You can connect mobile devices to your development PC and debug processes running on the devices.