2016-03-25 13 views
1

Ich bin neu auf GTK ... Ich möchte das Etikett zuerst ausblenden und wenn ich auf den "Klick" -Knopf klicken wird es das Etikett zeigen. Ich verwendete gtk_widget_hide (Label) ... bt ist es nicht Working.and verwendet festen Container, ändern Sie es nicht. hier ist mein Code ==>Wie kann die Sichtbarkeit eines Widget auf gtk verwendet werden?

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

Antwort

4

Verwendung gtk_widget_hide() am Ende des gtk_widget_show_all(window) weil u Etikett in festen Behälter genommen und behoben ist in window.and enthalten dann genannt u gtk_widget_show_all(window) das ist Mittel, die alle Inhalte zeigen, die haben im Fenster .... das ist, warum so verwenden müssen ===>

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