Note that there are some explanatory texts on larger screens.

plurals
  1. PORefresh Table in GTK
    primarykey
    data
    text
    <p>I've done a little program in C with GTK with a window, a box and a table inside the box. The table is painted with some files. I'd like to refresh the table with other data but I don't know how.</p> <p>This code launches a window with a <code>GtkTable</code>. This table is filled in the timer handle function. First time draw three lines in order 1,2,3 and last time write three lines in order 3,2,1. But the table never refreshes.</p> <pre><code>#include &lt;stdlib.h&gt; #include &lt;gtk/gtk.h&gt; static gboolean time_handler(GtkWidget *table); gboolean launched; int main( int argc, char *argv[]) { GtkWidget *window; GtkWidget *vboxgeneral; gchar *title; GtkWidget *table; gtk_init(&amp;argc, &amp;argv); /* WINDOW */ window = gtk_window_new(GTK_WINDOW_TOPLEVEL); title = "Test GtkTable"; gtk_window_set_title(GTK_WINDOW(window), title); gtk_window_set_default_size(GTK_WINDOW(window), 200, 100); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); /* ADDING GTKHBOX TO MAIN WINDOW */ vboxgeneral = gtk_vbox_new(FALSE, 0); /* ADDING GTKTABLE TO VBOX */ table = gtk_table_new(1,1,FALSE); gtk_box_pack_start(GTK_BOX(vboxgeneral), table, FALSE, FALSE, 0); /* SHOW ALL */ gtk_widget_show_all(window); /* ACTIONS */ g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); /* START TIMER */ g_timeout_add(10000, (GSourceFunc) time_handler, (gpointer) window); time_handler(table); gtk_main(); return 0; } static gboolean time_handler(GtkWidget *table) { GtkWidget *widget; gboolean result = FALSE; /* ADDING TABLE DEFINITION */ if(!launched) { table = gtk_table_new(3,1,FALSE); widget = gtk_label_new("File 1"); gtk_label_set_justify(GTK_LABEL(widget), GTK_JUSTIFY_CENTER); gtk_table_attach_defaults (GTK_TABLE (table), widget, 0, 1, 0, 1); widget = gtk_label_new("File 2"); gtk_label_set_justify(GTK_LABEL(widget), GTK_JUSTIFY_CENTER); gtk_table_attach_defaults (GTK_TABLE (table), widget, 0, 1, 1, 2); widget = gtk_label_new("File 3"); gtk_label_set_justify(GTK_LABEL(widget), GTK_JUSTIFY_CENTER); gtk_table_attach_defaults (GTK_TABLE (table), widget, 0, 1, 2, 3); launched = TRUE; result = TRUE; g_print("Timer executed fisrt time!\n"); } else { table = gtk_table_new(3,1,FALSE); widget = gtk_label_new("File 3"); gtk_label_set_justify(GTK_LABEL(widget), GTK_JUSTIFY_CENTER); gtk_table_attach_defaults (GTK_TABLE (table), widget, 0, 1, 0, 1); widget = gtk_label_new("File 2"); gtk_label_set_justify(GTK_LABEL(widget), GTK_JUSTIFY_CENTER); gtk_table_attach_defaults (GTK_TABLE (table), widget, 0, 1, 1, 2); widget = gtk_label_new("File 1"); gtk_label_set_justify(GTK_LABEL(widget), GTK_JUSTIFY_CENTER); gtk_table_attach_defaults (GTK_TABLE (table), widget, 0, 1, 2, 3); result = FALSE; g_print("Timer executed last time!\n"); } gtk_widget_draw(table, NULL); return result; } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload