---
title: "Gui gtk en C"
date: 2024-09-18T10:23:19-03:00
tags: ['gtk','c']
---

```bash
sudo apt-get install libgtk2.0-dev
pkg-config --list-all|grep gtk
```

```c
// COMPILE (GTK2): gcc main.c -o main `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0` 
// COMPILE (GTK3): gcc main.c -o main `pkg-config --cflags gtk+-3.0` `pkg-config --libs gtk+-3.0` 

#include <gtk/gtk.h> 

static int counter = 0; 

void greet(GtkWidget* widget, gpointer data) 
{ 
	// printf equivalent in GTK+ 
	g_print("Welcome to GTK\n"); 
	g_print("%s clicked %d times\n", 
			(char*)data, ++counter); 
} 

void destroy(GtkWidget* widget, gpointer data) 
{ 
	gtk_main_quit(); 
} 

int main(int argc, char* argv[]) 
{ 

	GtkWidget* window; 
	GtkWidget* button; 
	gtk_init(&argc, &argv); 

	window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 

	g_signal_connect(window, "destroy", 
					G_CALLBACK(destroy), NULL); 
	/* Let's set the border width of the window to 20. 
	* You may play with the value and see the 
	* difference. */
	gtk_container_set_border_width(GTK_CONTAINER(window), 20); 

	button = gtk_button_new_with_label("Click Me!"); 

	g_signal_connect(GTK_OBJECT(button), 
					"clicked", G_CALLBACK(greet), 
					"button"); 

	gtk_container_add(GTK_CONTAINER(window), button); 

	gtk_widget_show_all(window); 

	gtk_main(); 

	return 0; 
} 
```

