Qt je jedna z dvoch najpopulárnejšíchmultiplatformových knižníc pre vytváranie programov sgrafickým užívateľským rozhraním.
Qt toolkit bol vytvorený v roku 1999 spoločnosťouTrolltech, ktorá ho v roku 2008 predala firmeNokia. 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čnostiDigia. 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 namultiplatformový nástroj, v ktorom možno vyvíjať konzolové aleboGUI aplikácie v odlišných programovacích jazykoch pre rôzneplatformy. Aplikácie napísané s pomocou toolkitu je možné distribuovať pod licenciouGPL,LGPL, alebo po splnení určitých podmienok aj komerčne.
Qt je knižnica programovacieho jazykaC++, ale existuje aj pre jazykyPython (PyQt, PySide),Ruby (QtRuby),C,perl,Pascal,C #,Java (Jambi) aHaskell. Podporujelokalizáciu aplikácií a tiežSQL, spracovanieXML, správuvlákien, prístup ksú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 sGTK+ nahradila staršíMotif. Dôkazom kvality a rozšírenosti toolkitu je použitie napríklad pre projektySkype,Google Earth, prostredieKDE, webový prehliadačOpera,VirtualBox a iné.
Dôležitou vlastnosťou Qt toolkit je prítomnosť signálov a slotov pre komunikáciu medziobjektmi napr. Ak sa vo widgetu (elementGUI, 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óduobjekte, 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ódyconnect. V prípade potreby sa potom spojené signály len "vyvolávajú".
Sloty a signály môžu byť využité vo všetkýchobjektoch, ktoré sú priamo alebo nepriamo zdedené z triedyQObject. 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.