1 / 16

GUI With GTK+ Under Linux

GUI With GTK+ Under Linux. Fanfan Xiong. Introduction. GTK+ (GIMP toolkit) : A library for creating graphical user interfaces(GUI) Two examples developed with GTK+ Other GUI software in Linux. Basic Knowledge of GTK+.

korym
Download Presentation

GUI With GTK+ Under Linux

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GUI With GTK+ Under Linux Fanfan Xiong

  2. Introduction • GTK+ (GIMP toolkit) : A library for creating graphical user interfaces(GUI) • Two examples developed with GTK+ • Other GUI software in Linux

  3. Basic Knowledge of GTK+ • GTK is essentially an object oriented application programmers interface (API). Although written completely in C, it is implemented using the idea of classes and callback functions (pointers to functions). • GLib: A third component. It contains a few replacements for some standard calls, as well as some additional functions for handling linked lists, etc.

  4. Download and Install GTK+ • Get glib-1.2.10.tar and gtk+-1.2.10.tar from www.gtk.org. copy glib and gtk source gz and untar using xvf, then cd glib* ./configure --prefix=/home/fanfan/local make make install export LD_LIBRARY_PATH=/home/fanfan/local/lib cd gtk* ./configure --prefix=/home/fanfan/local --with-glib-refix=/home/fanfan/local make make install credited to siva

  5. Download and Install GTK+(cont) Then create a gtkenv.sh export LD_LIBRARY_PATH=/home/fanfan/local/lib export PATH=/home/fanfan/local/bin:$PATH alias ggcc='gcc -Wall -g `gtk-config --cflags` `gtk-config --libs`' Download gqcam-0.8.tar from http://webcam.soruceforge.net/ make start gqcam credited to siva

  6. One Simple Example • #include <gtk/gtk.h> (1) • int main( int argc, char *argv[] ){ • GtkWidget *window; • gtk_init (&argc, &argv); (2) • window = gtk_window_new (GTK_WINDOW_TOPLEVEL); (3) • gtk_widget_show (window); • gtk_main (); (4) • return(0);}

  7. Example Analysis • (1) The gtk.h file declares the variables, functions, structures, etc. that will be used in GTK applications. All programs should include gtk/gtk.h • (2) This function initializes the library for use, sets up default signal handlers, and checks the arguments passed to your application on the command line • (3) create and display a window • (4) enters the GTK main processing loop

  8. Signals and Callbacks • GTK is an event driven toolkit • Passing of control is done using the idea of "signals“ • set up a signal handler to catch these signals and call the appropriate function gint gtk_signal_connect( GtkObject *object, gchar *name, GtkSignalFunc func, gpointer func_data );

  9. Example 2: Hello World! • #include <gtk/gtk.h> • void hello( GtkWidget *widget, gpointer data ){ • g_print ("Hello World\n"); • } • gint delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ){ • g_print ("delete event occurred\n"); • return(TRUE); • } • void destroy( GtkWidget *widget, gpointer data ){ • gtk_main_quit(); • }

  10. 1. int main( int argc, char *argv[] ){ • 2. GtkWidget *window; • 3. GtkWidget *button; • 4. gtk_init(&argc, &argv); • 5. window = gtk_window_new (GTK_WINDOW_TOPLEVEL); • 6. gtk_signal_connect (GTK_OBJECT (window), "delete_event", • GTK_SIGNAL_FUNC (delete_event), NULL); • 7. gtk_signal_connect (GTK_OBJECT (window), "destroy", • GTK_SIGNAL_FUNC (destroy), NULL); • 8. gtk_container_set_border_width (GTK_CONTAINER (window), 10); • 9. button = gtk_button_new_with_label ("Hello World"); • 10. gtk_signal_connect (GTK_OBJECT (button), "clicked", • GTK_SIGNAL_FUNC (hello), NULL); • 11. gtk_signal_connect_object (GTK_OBJECT (button), "clicked", • GTK_SIGNAL_FUNC (gtk_widget_destroy), • GTK_OBJECT (window)); • 12. gtk_container_add (GTK_CONTAINER (window), button); • 13. gtk_widget_show (button); • 14. gtk_widget_show (window); • 15. gtk_main (); • 16. return(0);}

  11. Compiling Hello World • To compile use: gcc -Wall -g helloworld.c -o helloworld `gtk-config --cflags` `gtk-config --libs`

  12. Output of Example 2

  13. Other GUI Software for Linux • Glade : An application for creating graphical user interfaces that use the Gtk+ and GNOME libraries • KDevelop: An Integrated Development Environment provides many features that developers need as well as it wraps the functionality of third party projects such as make and the GNU C++ Compilers and makes them aninvisible, integrated part of the development process

  14. Glade in Mandrake Linux 8.1

  15. KDevelop in Mandrake Linux 8.1

  16. Where to Get More Information • Tony Gale and Ian Main, “GTK+ 1.2 Tutorial”, http://www.gtk.org • Eric Harlow, “Developing Linux Applications”, New Riders • Raph Levien, raph@acm.org • Peter Mattis, petm@xcf.berkeley.edu

More Related