9

I am new on GTK... I want to do hide the label at first and when I will click on the "click" button it will show the label.I used gtk_widget_hide(label)...bt it is not working.and will use fixed container don't change it. here is my code ==>

#include <gtk/gtk.h>

void destroy(GtkWidget* widget,gpointer *data){
    /*gtk_main_quit();*/
    g_print ("hide\n");

}

int main(int argc, char *argv[])
{
    GtkWidget *window,*button,*label,*fixed;

    gtk_init(&argc,&argv);

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window),"Demo");
    gtk_widget_set_size_request(window,200,400);
    gtk_container_set_border_width(GTK_CONTAINER(window),10);

    fixed = gtk_fixed_new();

    button = gtk_button_new_with_mnemonic("Click");
    gtk_widget_set_size_request(button,20,20);

    label = gtk_label_new("BOOM!!");
    gtk_widget_hide(label);

    g_signal_connect_swapped(G_OBJECT(button),"clicked",G_CALLBACK(destroy),NULL);

    gtk_fixed_put(GTK_FIXED(fixed),button,0,0);
    gtk_fixed_put(GTK_FIXED(fixed),label,30,30);

    gtk_container_add(GTK_CONTAINER(window),fixed);


    gtk_widget_show_all(window);

    gtk_main();
    return 0;
}
Cœur
  • 37,241
  • 25
  • 195
  • 267
user
  • 143
  • 1
  • 8

1 Answers1

8

use gtk_widget_hide() at end of gtk_widget_show_all(window) because u have taken label in Fixed container and Fixed contain is in window.and then u called gtk_widget_show_all(window)thats means show the all contents that have in window....thats why have to use like this===>

#include <gtk/gtk.h>

void destroy(GtkWidget* label,gpointer *data){
    /*gtk_main_quit();*/
    g_print ("hide\n");
    gtk_widget_show(label);

}

int main(int argc, char *argv[])
{
    GtkWidget *window,*button,*label,*fixed;

    gtk_init(&argc,&argv);

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window),"Demo");
    gtk_widget_set_size_request(window,200,400);
    gtk_container_set_border_width(GTK_CONTAINER(window),10);

    fixed = gtk_fixed_new();

    button = gtk_button_new_with_mnemonic("Click");
    gtk_widget_set_size_request(button,20,20);

    label = gtk_label_new("BOOM!!");


    g_signal_connect_swapped(G_OBJECT(button),"clicked",G_CALLBACK(destroy),label);

    gtk_fixed_put(GTK_FIXED(fixed),button,0,0);
    gtk_fixed_put(GTK_FIXED(fixed),label,30,30);

    gtk_container_add(GTK_CONTAINER(window),fixed);


    gtk_widget_show_all(window);
    gtk_widget_hide(label);
    gtk_main();
    return 0;
}
Sudip Das
  • 1,178
  • 1
  • 9
  • 24