hola eferion.
bueno mira pues aqui esta el codigo que intente hacer.
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include </usr/include/mysql/mysql.h>
4 #include <gtk/gtk.h>
5 #define server "localhost"
6 #define user "root"
7 #define password ""
8 #define database "datos"
9 void consulta(MYSQL *conn, MYSQL_RES *res, MYSQL_ROW row);
10 void hello(GtkWidget *Widget, gpointer data);
11 gint delete_event (GtkWidget *Widget, GdkEvent *event , gpointer data);
12 void destroy(GtkWidget *widget, gpointer data);
13 int main (int argc, char *argv[])
14 {
15 MYSQL *conn;
16 MYSQL_RES *res;
17 MYSQL_ROW row;
18 GtkWidget *ventana;
19 int wich;
20 GtkWidget * etiqueta;
21 res=0;
22 row=0;
24
25 conn = mysql_init(NULL);
26 if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0))
27 fprintf(stderr
, "%s\n",mysql_error
(conn
)); 28 consulta(conn, res, row);
29 mysql_free_result(res);
30 mysql_close(conn);
31 gtk_init(&argc, &argv);
32
33
34 ventana = gtk_window_new(GTK_WINDOW_TOPLEVEL);
35 g_signal_connect(G_OBJET(ventana), "delete_event")
36 G_CALLBACK((delete_event), NULL);
37 G_CALLBACK((destroy), NULL);
38 gtk_container_set_border_with(GTK_CONTAINER(ventana), 10);
39
40 etiqueta = gtk_label_new( "error");
41 gtk_container_add (GTK_CONTAINER(ventana), etiqueta);
42
43 gtk_widget_show(ventana);
44 gtk_widget_show(etiqueta);
45
46 gtk_main();
47 return 0;
48 }
49
50 void consulta (MYSQL *conn, MYSQL_RES *res, MYSQL_ROW row)
51 {
52 if (mysql_query(conn, "SELECT * FROM datos"))
53 fprintf(stderr
, "%s\n", mysql_error
(conn
)); 54 res = mysql_use_result(conn);
55 printf("id\t nombre\tedad\n"); 56 while ((row = mysql_fetch_row(res)) != NULL)
57 printf("%s\t%s\t%s\t\n", row
[0], row
[1], row
[2]); 58 }
59 void hello (GtkWidget *widget, gpointer data)
60 {
61 g_print("hola mundo \n");
62 }
63 gint delete_event (GtkWidget *Widget, GdkEvent *event , gpointer data)
64 {
65 g_print("delete_event\n");
66
67 return TRUE;
68 }
69 void destroy(GtkWidget *widget, gpointer data)
70 {
71 gtk_main_quit();
72 }
esta es una segunda forma de como lo quise hacer pero no tampoco me funciono.
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include </usr/include/mysql/mysql.h>
4 #include <gtk/gtk.h>
5 #define server "localhost"
6 #define user "root"
7 #define password ""
8 #define database "datos"
9 void consulta(MYSQL *conn, MYSQL_RES *res, MYSQL_ROW row);
10 void hello(GtkWidget *Widget, gpointer data);
11 gint delete_event (GtkWidget *Widget, GdkEvent *event , gpointer data);
12 void destroy(GtkWidget *widget, gpointer data);
13 int main (int argc, char *argv[])
14 {
15 MYSQL *conn;
16 MYSQL_RES *res;
17 MYSQL_ROW row;
18 GtkWidget *ventana;
19 int wich;
20 GtkWidget * etiqueta;
21 res=0;
22 row=0;
24
25 conn = mysql_init(NULL);
26 if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0))
27 fprintf(stderr
, "%s\n",mysql_error
(conn
)); 28 consulta(conn, res, row);
29 mysql_free_result(res);
30 mysql_close(conn);
31 gtk_init(&argc, &argv);
32 if (wich == 1)
33 {
34 ventana = gtk_window_new(GTK_WINDOW_TOPLEVEL);
35 g_signal_connect(G_OBJET(ventana), "delete_event")
36 G_CALLBACK((delete_event), NULL);
37 G_CALLBACK((destroy), NULL);
38 gtk_container_set_border_with(GTK_CONTAINER(ventana), 10);
39
40 etiqueta = gtk_label_new( "error");
41 gtk_container_add (GTK_CONTAINER(ventana), etiqueta);
42
43 gtk_widget_show(ventana);
44 gtk_widget_show(etiqueta);
45 }
46 gtk_main();
47 return 0;
48 }
49
50 void consulta (MYSQL *conn, MYSQL_RES *res, MYSQL_ROW row)
51 {
52 if (mysql_query(conn, "SELECT * FROM datos"))
53 fprintf(stderr
, "%s\n", mysql_error
(conn
)); 54 res = mysql_use_result(conn);
55 printf("id\t nombre\tedad\n"); 56 while ((row = mysql_fetch_row(res)) != NULL)
57 printf("%s\t%s\t%s\t\n", row
[0], row
[1], row
[2]); 58 }
59 void hello (GtkWidget *widget, gpointer data)
60 {
61 g_print("hola mundo \n");
62 }
63 gint delete_event (GtkWidget *Widget, GdkEvent *event , gpointer data)
64 {
65 g_print("delete_event\n");
66
67 return TRUE;
68 }
69 void destroy(GtkWidget *widget, gpointer data)
70 {
71 gtk_main_quit();
72 }
69,1 Final
bueno espero que me puedas ayudar y gracias por tu respuesta.