Qt Creator a konzolové aplikace
Qt Creator je vývojové prostředí určené pro tvorbu platformově nezávislých grafických Qt aplikací. S vývojem klasických konzolových aplikací v podstatě nepočítá. Protože jde ale o uživatelsky velmi přívětivé prostředí s intuitivním možností ladění, je možné je použít pro výuku C++, kde jednoduché konzolové aplikace jsou prvním krokem k následnému vývoji aplikací s grafickým uživatelským rozhraním.
Úvodní stránka Qt Creator, která se zobrazí po spuštění je následující
![](/images/0/00/Qt_Creator.png)
Pro založení nového projektu - konzolové aplikace zvolíme File --> New --> Empty Qt4 Project
![](/images/5/54/Qt_Creator_New_project.png)
a zvolíme jméno projektu a adresář ve které má být umístěn
![](/images/5/5d/Qt_Creator_Empty_Qt4_Project.png)
Po odsouhlasení zadaných parametrů vytvoří Qt Creator prázdný projekt, do kterého musím přidat C++ soubor, který bude obsahovat funkci main
naší konzolové aplikace
![](/images/a/a0/Qt_Creator_add_new_c%2B%2B.png)
Pro ladění máme nyní k dispozici vývojové prostředí Qt Creator včetně debugeru
![](/images/4/45/Qt_Creator_hello_cout.png)
Kompilace konzolové aplikace pod Windows
Pokud používáte Qt Creator pod operačním systémem Windows, je třeba pro správný běh konzolové aplikace doplnit do projektového souboru (.pro) následující řádky:
TEMPLATE = app win32:CONFIG += console
Pomocí proměnné TEMPLATE specifikujeme, že chceme, aby qmake generoval makefile, který bude sestavovat aplikaci a v proměnné CONFIG pak ještě upřesníme, že se bude jednat o konzolovou aplikaci.
Tento postup je nutný pouze pod Windows a chceme tedy docílit, aby při kompilaci pod jiným operačním systémem byl ignorován. K tomu slouží uvození řádku specifikací platformy (win32:, unix:, etc.)
Odstranění závislosti na mingwm10.dll
Qt Creator se při sestavování výsledného makefilu, řídí nastavením v konfiguračním souboru pro danou platformu a překladač. Pro platformu Windows a standardní překladač MinGW je to soubor "<QtHome>\qt\mkspecs\win32-g++\qmake.conf" (tento soubor nikdy neupravujte přímo, vždy raději využijte předefinování proměnných přímo z konkrétního projektového souboru tak, jak je ukázáno dále...)
CONFIG += qt warn_on release link_prl copy_dir_files debug_and_release debug_and_release_target precompile_header QT += core gui
Jak je vidno, automaticky je přidáván include základních qt modulů, podpora předkompilovaných hlaviček a další. Při psaní jednoduchého konzolového programu, nejsou nutné a můžeme je přepsat (výsledný soubor bude menší).
TEMPLATE = app win32:CONFIG = console
Co však způsobuje závislost na sdílené knihovně mingwm10m.dll je podpora vláken a obsluha vyjímek, konkrétně import "-mthreads", který je definovaný v souboru qmake.conf:
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads -Wl
Projektový soubor tedy můžeme upravit takto:
TEMPLATE = app win32:CONFIG += console QMAKE_LFLAGS_EXCEPTIONS_ON = -Wl QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions
Spuštění konzolové aplikace v terminálu z prostředí Qt Creator
Pokud píšete konzolovou aplikaci, která očekává uživatelský vstup, je nutno v záložce "Projects" -> "Run Settings" mít zatrhnutou položku "Run in Terminal", která zajistí spuštění programu v samostatném okně dosovské konzole, která na rozdíl od palety "Application output" v Qt Creatoru umí přijímat standardní vstup std::cin...