Saying Hello World With GTK
So now we’ re going to start nice and easy by making a common, household Hello World application. Here I’ll lay out a bare-essentials GTK application which I will try to explain as breifly as I can so fire up your text editor and create a base.c file:
This tells your compiler to include the gtk header files which includes the variables, structures, and other neat stuff in the GTK toolkit.
#include <gtk/gtk.h>
Here we have your main application function declaration. It has two parameters, which are pretty much standard:
int main(int argc, char **argv)
{
Here we declare an instance of GtkWidget which is a storage type for widgets and we’ll name it window:
GtkWidget *window;
Next, we call gtk_init, which as the name implies initializes GTK, initializing such stuff like color space, libararies, default signal handlers, etc. Here we see argc and argv again, which contain the arguments passed from the command line. gtk_init parses these arguments for special reserved arguments and removes them from the argument list. That’ll be useful in our future programs, so take note:
gtk_init (&argc, argv);
This creates a new window:
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
And this one shows the window:
gtk_widget_show (window);
Last, but certainly not the least, calling this gets us into the main processing loop:
gtk_main ();
And, then we elegantly close off our function
return 0;
}
Ok, put that all together and compile using the following basic compile command:
gcc base.c -o base `pkg-config –cflags –libs gtk+-2.0`
After it compiles, you’ll have a program that you can either double-click, or in terminal type
./base
This will open up a window with the default 200×200 size because we didn’t specify a size. But wait, it say’s base on it’s title bar, not “Hello World”! Yes, that’s just the bare-essential base application we did. We need to add these right before gtk_window_show:
gtk_window_set_title (GTK_WINDOW (window), "Hello, World");
Compile it again, and we have our extremely easy Hello World program.
In one of my previous posts I mentioned that GTK is language-neutral, so you may be wondering why this code looks an awful lot like C. That’s because I prefer to code in C, but you can just as easily code this in C#, Ruby, Perl, or others by referring to the GTK Hello World In Six Different Languages article on which this tutorial was based on. Just scroll down and click on the link in my references below.
Next >> Undecided
References:


