Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.
Portal:Desktop
En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh
Setting up Your Computer for Application Development
Choosing a Suitable Operating System
First of all you need to install a suitable operating system (OS) on your development machine. From now on we'll call that development machine the host machine and the OS it runs we'll call the host platform. The choice for a suitable host platform depends on what we'll call the target platform. The target platform is the OS on which the applications you are going to develop will run on.
In simple words:
- If you want to write programs that run on Linux then for development you'll need a computer that also runs Linux.
- If you want to write programs that run on Windows then for development you'll need a computer that also runs Windows.
- If you want to write programs that run on OS X then for development you'll need a computer that also runs OS X.
Now, let's say your computer already runs operating system A but you want to write programs for operating system B. If you want to stay with A you can. You don't have to wipe your harddrive. You can install B in a virtual machine. So if your computer is a Mac you can install Linux and Windows in virtual machines and you're ready to target all three platforms with a single computer.
Choosing a Suitable Compiler
Qt is a C++ framework and works will all standard compliant C++ compilers. It's up to you which one you want to use. If you don't have any special demands then do this:
- On Linux, use the GCC compiler that comes with your Linux distribution.
- On Windows, use Microsoft Visual Studio Compiler 2015 (MSVC 2015).
- On OS X, use the Clang compiler provided by Apple.
GCC and Clang are free software.
MSVC is not free software. You'll need a developer license to use MSVC. Luckily it is available as a free of charge "community edition". Consult Microsoft for license details.
If you can't or don't want to use MSVC and your host platform is Windows 7 or Windows 8.1, but not Windows 10, then you can instead use the GCC port for Windows, called MinGW.
Choosing an IDE
First of all, you don't have to use an IDE (integrated development environment) at all. You can just write your software with your favorite text editor and compile your programs on the command line. Also, if you want to use an IDE, the choice which one you want to use is up to you. If you're already familiar with development on Windows then you'll probably also familiar with Microsoft Visual Studio. If you're an OS X developer then you'll most likely know Apple Xcode. Qt comes with its own IDE, Qt Creator. As you might already have guessed, Qt Creator was written specifically for software development with Qt. Thus it has all all the stuff integrated you'll need: Intelligent code completion, syntax highlighting, help system, interactive GUI designers, and much more.
In simple words: Unless you know better use Qt Creator.
Choosing a Version Control System
If you're completely new to software development just skip this for now and come back to this in the future. Just for your information: Of course you can use any version control system with Qt. And of course you don't have to use one. Qt Creator has integration for all common VCSs, e.g. Git. Using a VCS should be just as normal to you as making backups of your data regularly. There are many VCSs available today with git beeing the most advanced and most common in use. Furthermore, with services like Github or Gitlab you can collaborate with other developers online and have a backup of all your software versions "in the cloud".
In simple words: Unless you know better use Git.
The actual situation is a bit more complex. Have a look at Supported Platforms.
Deployment
- BuildingQtInstallers
- Qt-Installer-Framework
- Deploying_a_Qt5_Application_Linux
- Deploying_Windows_Applications
- Build Standalone Qt Application for Windows
- Set-Installed-File-Permissions-for-Linux
Installing / Building Qt
- Install Qt 5 on Ubuntu
- Building_Qt_5_from_Git
- Building_Qt_for_Linux
- Setting-up-Qt-on-Ubuntu-in-VirtualBox
- Building_Qt_Desktop_for_Windows_with_MinGW
- Building Qt Desktop for Windows with MSVC
- Static_Qt_Build_for_Windows_with_GCC
- Building a static Qt for Windows using MinGW
- Compiling-ICU-with-MSVC
- Cannot Install Windows SDK
- How to install Visual Studio plugin on machine which had Visual studio Integration
- How to speed up Qt Windows Vc Build
- OS X Troubleshooting
- Jom
- Category:MSVC
- MinGW-64-bit
- Haiku_installation
Widgets
- How to Use QPushButton
- Creating a styled Gradient Button Bar
- Custom QListWidget
- How to Change the Background Color of QWidget
- How to Use QTableWidget
- How to Use QTextEdit
- How to catch enter key (event filter)
- Progress-bar
- QSplashScreen-Replacement-for-Semitransparent-Images
- QWidget Semi-transparent Background Color
- Saving_Window_Size_State
- Remove the System Menu of a QDialog on Windows
- ShortcutOverride
- Smooth Zoom In QGraphicsView
QtQuick
- QQUIComponentsComparison
- Qt Quick Tutorial
- JavaScript
- 10 secret Ninja weapons for Qt Quick QML developers
- Connect a complex signal from QML to Qt
- Creating-a-property-binding-from-JavaScript
- Drag and Drop within a GridView
- How to Bind a QML Property to a C++ Function
- How to create columns in a QML ListView
- How to use a C class declared in a namespace with Q PROPERTY and QML
- ListView Item Manual Positioning Animations QML
- Performance tip Images
- Performance tip QML other
- Performance tip Use Loaders
- Property-var
- QML-Containers
- QML-States-Controlling
- QML-Dynamic-Objects
- QML Example Use timer to update Date
- QmlStyling
- QML-Application-Structuring-Approaches
- QML_Multi-line_Texts_Handling
- QtQuick_ToolTip_Component
2D
Database
- Building the MySQL Plugin
- General Database Connection Dialog
- How to Store and Retrieve Image on SQLite
- How to Use a QSqlQueryModel in QML
- How to write a SQLDatabase Driver
- How to load a sql driver correctly
Guidelines
- Developer-Guides
- D-Pointer
- Colors and Font Guidelines
- API Design Principles
- Coding Conventions
- Memory-management
- Qt Coding Style
- Writing good tests
WinRT
Other
- How to use C++11 in your Qt Projects
- Getting Started
- Getting Started on the Commandline
- How to Use Signals and Slots / New Signal Slot Syntax (Qt 5)
- Basic Qt Programming Tutorial
- Basics Of Plugins / Plugins
- Call an AppleScript from Qt
- Automating generation of qm files
- Assigning a file type to an Application on Windows
- Exporting a document to PDF
- Filter Columns in a QFileSystemModel
- Handling CSV
- Handling Microsoft Excel file format
- Handling OpenDocument Spreadsheet
- How to Use QSettings
- How to create a library with Qt and use it in an application
- Including_.pro_Files
- How to Launch Web Browser
- How to make an Application restartable
- Locales
- Porting from GTK
- Iterators / Performance Tip Optimizing Iteration
- Mixing C and ObjectiveC Code
- QFlags_tutorial
- QVariant_Internals
- QThreads general usage
- Set Thread Priority In QtConcurrent
- Threads Events QObjects
- Qt Multimedia Backends
- Qt5GraphicsOverview
- Qt Serial Port
- QtConcurrent-simple-usage
- QtInternationalization
- Qt thread-safe singleton