Qt (knihovna)

multiplatformní knihovna pro vytváření programů s grafickým uživatelským rozhraním From Wikipedia, the free encyclopedia

Qt (knihovna)
Remove ads

Qt (výslovnost [kjuːt]IPA) je multiplatformní aplikační rámec (framework) široce používaný pro vytváření aplikačního software s grafickým uživatelským rozhraním určeného pro rozličné softwarové a hardwarové platformy.

Stručná fakta Vývojář, První vydání ...

Qt toolkit byl vytvořen v roce 1999 společností Trolltech, která jej roku 2008 prodala firmě Nokia. V březnu 2011 Nokia ohlásila prodej práv na provoz podpůrných služeb a prodej licencí pro komerční projekty vytvořené pomocí Qt společnosti Digia. Zároveň však Nokia ujišťuje, že po transakci zůstane hlavním vývojářem tohoto toolkitu.[3]

Počínaje rokem 1999 se Qt toolkit vyvinul v multiplatformní nástroj, ve kterém lze vyvíjet konzolové nebo GUI aplikace v odlišných programovacích jazycích pro různé platformy. Aplikace napsané pomocí toolkitu je možno distribuovat pod licencí GPL, LGPL, nebo po splnění určitých podmínek i komerčně.

Qt je knihovna programovacího jazyka C++, ale existuje i pro jazyky Python (PyQt, PySide), Ruby (QtRuby), C, Perl, Pascal, C#, Java (Jambi) a Haskell. Podporuje lokalizaci aplikací a také SQL, zpracování XML, správu vláken, přístup k souborům, práci s grafikou a multimédii. Velkou výhodou Qt je velmi přehledně zpracovaná dokumentace a také vývojové programy Qt Creator nebo Qt Designer. Aplikace vytvořené pro grafické uživatelské prostředí používají nativní vzhled operačního systému, takže vyvinuté aplikace se vždy přizpůsobí vzhledu používaného prostředí.

Qt společně s GTK+ nahradila starší Motif. Důkazem kvality a rozšířenosti toolkitu budiž použití například pro projekty Skype, Google Earth, prostředí KDE, webový prohlížeč Opera, VirtualBox, RStudio a jiné.

Remove ads

Platformy

Podporované platformy

Desktopové

  • Windows – Qt pro Microsoft Windows 7, 8.1 a 10, 32- i 64bitové verze.
  • Linux/X11 – Qt pro openSUSE 13.1, Red Hat Enterprise Linux 6.6, Ubuntu 14.04 (vše 64bitové verze) a (Linux 32-/64bit).
  • macOS – Qt pro Apple macOS 10.8 „Mountain Lion“, 10.9 „Mavericks“, 10.10 „Yosemite“ a 10.11 „El Capitan“ (vše 64bit).

Mobilní

Ostatní

  • Vestavěné Linux platformy – Embedded Linux QWS (ARM) (PDA, Smartphone, Raspberry Pi…)
  • QNX v6.6.0 (armv7le and x86)

Již nepodporované platformy

Remove ads

Nové technologie od Qt verze 4

28. června 2005 Trolltech uvolnil Qt 4 a představil pět nových technologií ve frameworku:

  • Tulip – šablony a třídy.
  • Interview – architektura pro náhled na menu.
  • Arthur – framework pro 2D kreslení.
  • ScribeUnicode text vykreslován s veřejným API k prezentaci nízkoúrovňových textových vrstev.
  • MainWindow – moderní akčně založené hlavní okno, nástrojová lišta, menu a přilehlá architektura.

Vývoj verzí

Další informace Verze, Uvolněna ...
Remove ads

Licence

  • Qt Komerční licence pro vývojáře – licence je shodná s licencí používanou při vývoji klasické komerční aplikace. Tato verze je pro vývojáře, kteří nechtějí sdílet zdrojový kód s ostatními v souladu s licencí GPL nebo LGPL.
  • Qt GNU LGPL v2.1 – tato verze Qt licence je vhodná pro vývoj aplikací open source za předpokladu, že vývojář splní podmínky obsažené ve verzi GNU LGPL 2.1.
  • Qt GNU GPL v3.0 – tato verze Qt licence je vhodná pro vývoj Qt aplikací, pokud hodláte používat aplikaci v kombinaci se softwarem s podmínkami GNU General Public License verze 3.0 nebo kde jste ochotni dodržet podmínky GNU General Public License verze 3.0.[10]
Remove ads

Signály a sloty

Důležitou vlastností Qt toolkitu je přítomnost signálů a slotů pro komunikaci mezi objekty. Např. pokud se ve widgetu (element GUI, který zobrazuje nebo předává informace pomocí interakce s uživatelem) uskutečnila akce, která změnila jeho stav, může o tom být informován widget umístěný v jiném okně aplikace. Signály a sloty tvoří velmi silný programátorský nástroj.

Místo signálů a slotů se dříve pro tento typ komunikace používal tzv. callback, což je ukazatel na metodu objektu, kterou chceme vyvolat po nějaké události jiného objektu. Tento přístup měl dvě nevýhody. Nebyla zde při volání typová kontrola a metody volané pomocí callback jsou silně vázané tzn. volaná metoda musí znát ukazatel na metodu, z které byla vyvolána. Při používání signálů a slotů se tyto dvě nevýhody nevyskytují. Pro jejich použití se definuje spojení signálu se slotem pomocí metody connect. V případě potřeby se pak spojené signály pouze „vyvolávají“.

Sloty a signály mohou být využity ve všech objektech, které jsou přímo nebo nepřímo zděděny ze třídy QObject. Při propojování signálů a slotů může být s jedním slotem spojeno několik různých signálů a stejně tak na jeden signál napojeno několik slotů. Sloty mohou být použity pro přijímání signálů a zároveň mohou být použity jako standardní metoda objektu.

Remove ads

Příklad zdrojového kódu

#include <QtGui> // import modulu s widgety

int main(int argc, char *argv[])
{
  // vytvoreni hlavniho objektu aplikace
  QApplication app(argc, argv);

  // vytvoreni hlavniho okna, nastaveni rozmeru a zobrazeni..
  QWidget window;
  window.resize(320, 240);
  window.show();

  // aktivace hlavni smycky udalosti aplikace..
  return app.exec();
}

Odkazy

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads