2016-03-25 13 views
1

GTK'de yeniyim ... İlk önce etiketi gizlemek istiyorum ve "tık" düğmesine tıkladığımda etiketi gösterecektir. Kullanılan gtk_widget_hide (label) ... bt değil working.and sabit kap kullanacak, onu değiştirmeyiniz. İşte benim kod ==> u Sabit kapta etiketi almış ve Sabit çünkü ihtiva gtk_widget_show_all(window) window.and olduğu sonundaHerhangi bir widget'ın görünürlüğünü nasıl kullanırım?

#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; 
} 

cevap

4

kullanım gtk_widget_hide() sonra u gtk_widget_show_all(window) şu vasıta olan tüm içeriğini göstermek denilen olduğunu pencerede .... thats neden bu gibi kullanmak zorunda ===>

#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; 
} 
İlgili konular