Qt (knižnica)
objektovo-orientovaná multiplatformová knižnica na vytváranie programov s grafickým užívatelským rozhraním From Wikipedia, the free encyclopedia
objektovo-orientovaná multiplatformová knižnica na vytváranie programov s grafickým užívatelským rozhraním From Wikipedia, the free encyclopedia
Qt je jedna z dvoch najpopulárnejších multiplatformových knižníc pre vytváranie programov s grafickým užívateľským rozhraním.
Qt toolkit bol vytvorený v roku 1999 spoločnosťou Trolltech, ktorá ho v roku 2008 predala firme Nokia. V marci roku 2011 Nokia ohlásila predaj práv na prevádzku podporných služieb a predaj licencií pre komerčné projekty vytvorené pomocou Qt spoločnosti Digia. Zároveň však Nokia uisťuje, že po transakcii zostane hlavným vývojárom tohto toolkitu.
Od roku 1999 sa Qt toolkit vyvinul na multiplatformový nástroj, v ktorom možno vyvíjať konzolové alebo GUI aplikácie v odlišných programovacích jazykoch pre rôzne platformy. Aplikácie napísané s pomocou toolkitu je možné distribuovať pod licenciou GPL, LGPL, alebo po splnení určitých podmienok aj komerčne.
Qt je knižnica programovacieho jazyka C++, ale existuje aj pre jazyky Python (PyQt, PySide), Ruby (QtRuby), C, perl, Pascal, C #, Java (Jambi) a Haskell. Podporuje lokalizáciu aplikácií a tiež SQL, spracovanie XML, správu vlákien, prístup k súborom, prácu s grafikou a multimédiami. Veľkou výhodou Qt je veľmi prehľadne spracovaná dokumentácia a taktiež vývojové programy Qt Creator alebo Qt Designer. Aplikácie vytvorené pre grafické užívateľské prostredie používajú natívny vzhľad operačného systému, takže vyvinutá aplikácia sa vždy prispôsobí do používaného prostredia.
Qt spoločne s GTK+ nahradila starší Motif. Dôkazom kvality a rozšírenosti toolkitu je použitie napríklad pre projekty Skype, Google Earth, prostredie KDE, webový prehliadač Opera, VirtualBox a iné.
28. júna 2005 Trolltech uvoľnil Qt 4 a predstavil päť nových technológií vo frameworku:
Verzia | Uvoľnená | Popis |
---|---|---|
Qt 4.1 | 19.decembra2005 | Obsahuje integrovanú podporu SVG Tiny a PDF prevádzač na Qt systém tlače a niekoľko ďalších vylepšení. |
Qt 4.2 | 4.októbra2006 | Prinieslo natívnu podporu CSS pre widgetový štýl, rovnako ako QGraphicsView framework, ktorý dokáže stvárniť stovky 2D objektov na obrázku (nahrádza Qt 3.x QCanvas triedy). |
Qt 4.3 | 30.mája2007 | Vylepšil podporu Windows Vista, OpenGL, generovanie SVG súborov a pridalo QtScript (ECMAScript skriptovací jadro založené na QSA). |
Qt 4.4 | 7.mája2008 | Prinieslo predovšetkým podporu renderovacieho jadra WebKit, multimediálny framework Phonon a podporu pre Windows CE. |
Qt 4.5 | 3.marca2009 | Prinieslo hlavne vývojové prostredie QtCreator, vylepšený grafický engine, lepšiu integráciu s WebKit, podporu čítania formátu OpenDocument a podporu frameworku Cocoa. |
Qt 4.6 | 1.decembra2009 | Nová verzia toolkit obsahuje podporu viacerých platforiem (Symbian, Windows 7, Apple Mac OS X 10.6 (Snow Leopard) a Maemo 6), grafické vylepšenia (priehľadnosť, tiene, žiara, atď.), podpora viacerými dotykmi v aplikáciách, optimalizácia Qt GraphicsView renderovacieho algoritmu, nový OpenGL vykresľovací engine, WebKit a aktualizovanú verziu Qt Creator 1.3. |
Qt 4.7 | 21. septembra2010 | Kľúčovým rysom verzia je uvedenie QML (Qt Meta-Object-Language), ktorý je popisovaný ako JavaScript-like deklaratívny jazyk pre jednoduchšie vytváranie rozhrania programu. Nová verzia triedy QStaticText, ktorá renderuje dvakrát rýchlejšie ako vo verzii Qt 4.6. Pomocou enginu QPainter systém efektívnejšie využíva OpenGL. Nová hardwarová akcelerácia QtWebkit renderuje o 31% rýchlejšie. |
Qt 4.8 | 15.decembra2011 | Knajväčším zmenám patrí nová verzia Qt Quick, abstrakcia od platformy, nová verzia WebKite, podpora vlákien v OpenGL modulu, a podpora štandardu C ++ 11. |
Qt 5.0 | 19.decembra2012 | Prináša novú verziu Qt Quick, balíček Qt Multimedia (nahrádza Phonon a pridáva nové funkcie), JSON a vylepšuje podporu IPv6, vyčleňuje Widgety do vlastného balíčka. |
Dôležitou vlastnosťou Qt toolkit je prítomnosť signálov a slotov pre komunikáciu medzi objektmi napr. Ak sa vo widgetu (element GUI, ktorý zobrazuje alebo odovzdáva informácie pomocou interakcie s užívateľom) uskutočnila akcia, ktorá zmenila jeho stav , tak o tom môže byť informovaný widget umiestnený v inom okne aplikácie. Signály a sloty tvorí veľmi silný programátorský nástroj.
Miesto signálov a slotov sa skôr pre tento typ komunikácie používal tzv. Callback, čo je ukazovateľ na metódu objekte, ktorú chceme vyvolať po nejakej udalosti iného objektu. Tento prístup mal dve nevýhody. Nebola tu pri volaní typová kontrola a metódy volané pomocou callback sú silne viazané tzn. volané metóda musí poznať ukazovateľ na metódu, z ktorej bola vyvolaná. Pri používaní signálov a slotov sa tieto dve nevýhody nevyskytujú. Pre ich použitie sa definuje spojenie signálu so slotom pomocou metódy connect. V prípade potreby sa potom spojené signály len "vyvolávajú".
Sloty a signály môžu byť využité vo všetkých objektoch, ktoré sú priamo alebo nepriamo zdedené z triedy QObject. Pri prepájaní signálov a slotov môže byť s jedným slotom spojené niekoľko rôznych signálov a rovnako tak na jeden signál napojených niekoľko slotov. Sloty môžu byť použité pre prijímanie signálov a zároveň môžu byť použité ako štandardné metódy objekte.
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget window;
window.resize(320, 240);
window.show();
return app.exec();
}
Tento článok je čiastočný alebo úplný preklad článku Qt (knihovna) na českej Wikipédii.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.