Qt

Qt (uttalas ) är ett applikationsramverk för Windows, Mac OS och Unix för utveckling av framförallt grafiska program med C++. Qt utvecklades av företaget Trolltech, fram till uppköpet av Nokia år 2008, då de bytte namn till Qt Software. Sedan 2012 ägs ramverket av Digia. Qt finns i en kommersiell version och en fri programvara-version. Programvara utvecklad med hjälp av den fria utgåvan får distribueras under licenserna GPL, LGPL (sedan Qt 4.5), eller QPL.

Historia 
Qt skapades 1991 av Haavard Nord och Eirik Chambe-Eng. Q:et i namnet kommer från att Q:et i Haavards Emacsfont såg vackert ut enligt honom själv och t:et från att de blev inspirerade av toolkitet Xt. 1998 skapades den fria skrivbordsmiljön KDE som använde sig av Qt. En stor kontrovers uppstod inom fri programvaru- och öppen källkods-världen eftersom Qt som då inte var fri programvara, vilket ledde GNU-projektet till att påbörja utvecklingen av GNOME och  Harmony. GNOME är en GNU GPL-licensierad skrivbordsmiljö som använder sig av GTK+. Harmony är en fri klon av Qt, som numera är nedlagd. När Qt 2 släpptes fick det en ny licens, QPL, erkänd som en fri licens av både Free Software Foundation och Open Source Initiative, dock ej GNU GPL-kompatibel.

I början fanns bara Qt för Unix och Windows, men Windows-versionen släpptes under en proprietär licens. När Qt 3 släpptes stöddes även Mac OS. I och med version 3.2 kom också en GNU GPL-licensierad version av Qt.  En fri version för Windows kom först med Qt 4. Trolltech blev uppköpta av Nokia år 2008, och bytte då också namn till Qt Software. Qt 4.5 släpptes senare, då också med stöd för GNU LGPL-licensen för programvara som utvecklats med hjälp av den fria utgåvan. Qt Creator var en annan nyhet, som en ny utvecklingsmiljö för Qt, komplett med avlusare och grafiska designers.

Hösten 2012 såldes Qt till Digia och i slutet av samma år introducerades Qt 5.

Hello world i Qt 
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel *label = new QLabel(" <span style=\"color: green;\"><h1>Hello World!</h1></span> ", 0);
    label->show();
    return app.exec();
}

Notera att den HTML-liknande syntaxen är valfri och i detta fall resulterar i en grön text med rubrikstorlek.

Versioner 
Qt finns för dessa plattformar:
 Qt for Linux/X11 – Qt för Unix-system
 Qt for Windows – Qt för Windows-system
 Qt for Mac OS X – Qt för Mac OS-system
 Qt for Embedded Linux – Qt för handdatorer
 Qt for Windows CE - Qt för Windows CE
 Qt for Symbian - Qt för Symbian
 Qt for Maemo - Qt för Maemo

Qt finns i dessa varianter:
 Full Framework – den kompletta kommersiella varianten
 GUI Framework - kommersiell, förenklad, variant för utveckling av grafiska användargränssnitt, med viss bortskalad funktionalitet, som datornätverk och databaser. Känd som "Desktop Light" före Qt 4.5.
 Open Source – utgåvan för utveckling av öppen källkod

Alla varianter är kommersiella utom Open Source Edition. I Unix-system kan man licensiera program med den fria varianten under vilken fri/öppen licens som helst, men i Windows och Mac måste man använda antingen GNU GPL eller GNU LGPL.

Program som ingår i Qt 
 moc - Preprocessor på klassdefinitionsfiler för att utöka C++-språket för hantering av Qt:s händelsesystem med "signaler" och "slots".
 qmake – Program för att kompilera Qt-program
 Qt Creator – Den officiella utvecklingsmiljön för Qt. Innehåller bl.a. Qt Designer och en avlusare.
 uic - Program som omvandlar UI-XML kod till C++kod
 Qt Linguist – Program för att översätta Qt-program
 Qt Assistant – Qt-manual
ActiveQt - ett bibliotek med syftet att motsvara Microsoft komponent ActiveX. Med hjälp av ActiveQt kan man skapa program som motsvarar ActiveX, när man programmerar i programmeringsspråket Qt.

Kuriosa 
Låten Qt 4 Dance komponerades för att fira lanseringen av Qt 4.

Källor

Externa länkar 
 Nokia
 KDE

Fri programvara och öppen källkod
Programmering