O fereastră simplă dezvoltată cu Code::Blocks și Gtk+ în limbajul de programare C pe un sistem Ubuntu 18.04. Acest program poate fi utilizat și ca un template pentru orice alte proiecte realizate cu Code::Blocks. Template-ul poate fi descarcat de pe github.com de la adresa urmatoare in format zip:
https://github.com/mhcrnl/01gtk_c_template
sau prin clonare dacă aveți instalat git:
$ git clone https://github.com/mhcrnl/01gtk_c_template.git .
Template-ul de pe github este actualizat la zi.
Crearea unei ferestre este foarte simplă și intuitivă ca în exemplul următor:
main.c
https://github.com/mhcrnl/01gtk_c_template
sau prin clonare dacă aveți instalat git:
$ git clone https://github.com/mhcrnl/01gtk_c_template.git .
Template-ul de pe github este actualizat la zi.
Crearea unei ferestre este foarte simplă și intuitivă ca în exemplul următor:
main.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdlib.h> | |
#include <gtk/gtk.h> | |
static void helloWorld (GtkWidget *wid, GtkWidget *win) | |
{ | |
GtkWidget *dialog = NULL; | |
dialog = gtk_message_dialog_new (GTK_WINDOW (win), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "Hello World!"); | |
gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER); | |
gtk_dialog_run (GTK_DIALOG (dialog)); | |
gtk_widget_destroy (dialog); | |
} | |
int main (int argc, char *argv[]) | |
{ | |
GtkWidget *button = NULL; | |
GtkWidget *win = NULL; | |
GtkWidget *vbox = NULL; | |
/* Initialize GTK+ */ | |
g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, (GLogFunc) gtk_false, NULL); | |
gtk_init (&argc, &argv); | |
g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, g_log_default_handler, NULL); | |
/* Create the main window */ | |
win = gtk_window_new (GTK_WINDOW_TOPLEVEL); | |
gtk_container_set_border_width (GTK_CONTAINER (win), 8); | |
gtk_window_set_title (GTK_WINDOW (win), "Hello World"); | |
gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER); | |
gtk_widget_realize (win); | |
g_signal_connect (win, "destroy", gtk_main_quit, NULL); | |
/* Create a vertical box with buttons */ | |
vbox = gtk_vbox_new (TRUE, 6); | |
gtk_container_add (GTK_CONTAINER (win), vbox); | |
button = gtk_button_new_from_stock (GTK_STOCK_DIALOG_INFO); | |
g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (helloWorld), (gpointer) win); | |
gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0); | |
button = gtk_button_new_from_stock (GTK_STOCK_CLOSE); | |
g_signal_connect (button, "clicked", gtk_main_quit, NULL); | |
gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0); | |
/* Enter the main loop */ | |
gtk_widget_show_all (win); | |
gtk_main (); | |
return 0; | |
} |
Comentarii
Trimiteți un comentariu