qt
Obsah
Qt Framework
Qt je objektově orientovaný framework napsaný v jazyce C++. Jeho hlavní devízou je heslo: „Write once, compile anywhere.“ Umožňuje vývojářům používat jeden zdrojový kód pro aplikace běžící na Windows, Linuxu, macOS, Androidu, iOS i v embedded systémech.
Hlavní technologie Qt
Qt se skládá z několika klíčových modulů a technologií:
- Qt Widgets: Tradiční způsob tvorby rozhraní pomocí C++. Ideální pro desktopové aplikace s komplexními ovládacími prvky.
- Qt Quick & QML: Moderní, deklarativní jazyk (podobný JSON/JavaScriptu) pro tvorbu plynulých, animovaných rozhraní, která jsou optimalizovaná pro dotykové displeje.
- Signals and Slots: Unikátní mechanismus pro bezpečnou komunikaci mezi objekty. Nahrazuje složité callback funkce.
- Qt Meta-Object System: Rozšíření C++, které přidává reflexi, introspekci a dynamickou práci s vlastnostmi objektů.
Vývojové nástroje
Vývoj v Qt se obvykle opírá o integrované prostředí (IDE):
- Qt Creator: Rychlé a lehké IDE navržené přímo pro Qt. Obsahuje vizuální návrhář rozhraní (Qt Designer).
- Qt Design Studio: Nástroj pro designéry, který umožňuje importovat grafiku z Figmy nebo Photoshopu a transformovat ji přímo do kódu QML.
Srovnání: Qt vs. GTK
Qt je často srovnáván s GTK, ale jejich filozofie se liší:
| Vlastnost | Qt | GTK |
|---|---|---|
| Jazyk | Nativně C++, vazby pro Python (PySide/PyQt). | Nativně C, objektovost přes GObject. |
| Rozsah | Celý ekosystém (včetně kontejnerů, sítě). | Zaměřeno primárně na GUI (zbytek řeší GLib). |
| Licence | Komerční nebo Open Source (GPL/LGPL). | Open Source (LGPL). |
| Vzhled | Emuluje nativní vzhled každého systému. | Má svůj specifický styl (vychází z GNOME). |
Qt a Python (PySide vs. PyQt)
Qt je velmi populární i v komunitě Pythonu. Existují dvě hlavní knihovny:
1. **PySide (Qt for Python):** Oficiální projekt od tvůrců Qt (The Qt Company). 2. **PyQt:** Starší, velmi stabilní knihovna vyvíjená společností Riverbank Computing.
Příklad kódu (C++)
Jednoduché okno s tlačítkem využívající signály a sloty:
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QPushButton button("Klikni na mě");
// Propojení signálu (kliknutí) se slotem (ukončení aplikace)
QObject::connect(&button, &QPushButton::clicked, &app, &QApplication::quit);
button.show();
return app.exec();
}
—
Víte, že? Na frameworku Qt je postaveno celé desktopové prostředí KDE Plasma, ale také aplikace jako VLC Media Player, Telegram, Autodesk Maya nebo palubní systémy ve vozech Tesla.
Související: gtk, C++, Linux, Oficiální web Qt
qt.txt · Poslední úprava: autor: admin
