2016-03-25 4 views
1

Я новичок в GTK ... Я хочу сначала скрыть ярлык, и когда я нажму кнопку «щелкнуть», он покажет метку. Я использовал gtk_widget_hide (label) ... bt это не working.and будет использовать фиксированный контейнер, не меняйте его. вот мой код ==>Как использовать вязкость любого виджета на gtk?

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

ответ

4

использование gtk_widget_hide() в конце gtk_widget_show_all(window) , так как и приняли метку в Fixed контейнера и Fixed содержат в window.and то и называется gtk_widget_show_all(window) Thats средства показать все содержимое, которые имеют в окне .... вот почему так нужно использовать ===>

#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; 
} 
Смежные вопросы