[Home]  Window Toolkit


Nome
Platform
License
C/C++
GUI Builder
OpenGL
Networking
MultiThreading
QT Microsoft Windows
X11
Mac OS X
embedded Linux
Commercial License
Open Source License (GPL e QPL)
Academic
Educational
C++
Qt Designer

SI
SI
KDE X11/QT
GPL o QPL
C++
KDevelop



GTK Microsoft Windows
X11
LGPL
GTK+ for C
GTKmm for C++
GLADE


SI*
wxWindows
Microsoft Window
X11
GTK
Motif
Mac Os
LGPL
C++

SI


FLTK Microsoft Windows
X11
Mac OS X
LGPL
C++
FLUID
SI


FOX-TOOLKIT Microsoft Window
X11
LGPL
C++

SI



QT
Tool completo di sviluppo crossplatform.
La licenza Commerciale permette di creare software commerciali e di distribuire i binari cosi' compilati.
La licenza OpenSource e' disponibile solo per Linux, e obbliga a rendere disponibile il proprio codice prodotto.
KDE, Skype, Adope Photoshop Album sono basati su QT.
QT reimplementa quasi tutti i costrutti propri dell STL (QString etc...)

KDE

L'intero ambiente KDE e' basato su questo toolkit.  
Dalla versione QT 2.2 questa e' passata sotto GPL, e KDE e' basato sulla corrente versione OpenSource di QT, e pertanto mantiene l'obbligo di rendere disponibili i sorgenti del prodotto.

GTK
The GIMP Toolkit

Ovviamente GIMP e lo stesso ambiente di desktop GNOME sono implementati basandosi su questo toolkit.

GTKmm e' un wrapper C++ verso GTK+. Positivamente ha che usa le STL, cosa che gli altri Toolkit tendono a evitare.

wxWindows

Sotto Linux puo' usare direttamente le chiamte verso X11, sia usare GTK+ o Motif.


FLTK



FOX-TOOLKIT


Esempio di Main per i toolkit

GTK+
wxWindows
FLTK
FOX-TOOLKIT
int main( int   argc,
char *argv[] )
{
GtkWidget *window;
GtkWidget *button;

 gtk_init (&argc, &argv);

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

g_signal_connect (G_OBJECT (window), "delete_event",
G_CALLBACK (delete_event), NULL);

g_signal_connect (G_OBJECT (window), "destroy",
G_CALLBACK (destroy), NULL);

gtk_container_set_border_width (GTK_CONTAINER (window), 10);

button = gtk_button_new_with_label ("Hello World");
g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (hello), NULL);

g_signal_connect_swapped (G_OBJECT (button), "clicked",
G_CALLBACK (gtk_widget_destroy),
G_OBJECT (window));

gtk_container_add (GTK_CONTAINER (window), button);

gtk_widget_show (button);

gtk_widget_show (window);

gtk_main ();

return 0;
}

int main(int argc, char **argv) {
Fl_Window *window = new Fl_Window(300,180);
Fl_Box *box = new Fl_Box(20,40,260,100,"Hello, World!");
box->box(FL_UP_BOX);
box->labelsize(36);
box->labelfont(FL_BOLD+FL_ITALIC);
box->labeltype(FL_SHADOW_LABEL);
window->end();

window->show(argc, argv);

return Fl::run();
}
// Here we begin
int main(int argc,char *argv[]){
// Make application
FXApp* application=new FXApp("Scribble","Test");
// Start app
application->init(argc,argv);
// Scribble window
new ScribbleWindow(application);
// Create the application's windows
application->create();
// Run the application
application->run();
return 0;
}