[GTK+] Wyświetlanie wpisanego tekstu

0

Witam, mam problem z wyświetleniem tekstu. Chciałbym, aby po wciśnięciu przycisku "Wyswietl" wyświetlała mi się zawartość stringa "napis" za pomocą widgetu label. Funkcja która najprawdopodobniej jest źle to void on_button2_clicked . Proszę o wskazanie i poprawienie błędu w kodzie.

Z góry dzięki

void on_button2_clicked( GtkWidget * widget, gpointer data )
{
	
	napis="wyswietlony tekst";
	label=gtk_label_new(napis.c_str());
	gtk_fixed_put(GTK_FIXED(vbox), label, 50, 100);
    
	
}

int main( int argc, char * argv[] )
{
    
	
    gtk_init( & argc, & argv );
    


    win = gtk_window_new( GTK_WINDOW_TOPLEVEL );
    gtk_window_set_default_size (GTK_WINDOW(win), 900, 600);
    
    vbox = gtk_fixed_new();
    gtk_container_add(GTK_CONTAINER(win), vbox);
    
    wyswietl = gtk_button_new_with_label( "Wyswietl" );
  
    gtk_container_add( GTK_CONTAINER( win ), vbox );
    gtk_fixed_put(GTK_FIXED(vbox), wyswietl, 50, 200);
	

    g_signal_connect( G_OBJECT( win ), "destroy", G_CALLBACK( gtk_main_quit ), NULL );
    g_signal_connect( G_OBJECT( wyswietl ), "clicked", G_CALLBACK( on_button2_clicked ), entry );

    gtk_widget_show_all( win );
    gtk_main();
   
    return 0;
}
0
#include <gtk/gtk.h>

static void on_button2_clicked( GtkWidget * widget, gpointer data )
{
    gtk_label_set_text(GTK_LABEL(data),"wyswietlony tekst");
}
 
int main( int argc, char * argv[] )
{
     gtk_init( & argc, & argv );
 
    GtkWidget *win = gtk_window_new( GTK_WINDOW_TOPLEVEL );
    gtk_window_set_default_size (GTK_WINDOW(win), 900, 600);
 
    GtkWidget *vbox = gtk_fixed_new();
    gtk_container_add(GTK_CONTAINER(win), vbox);
 
    GtkWidget *wyswietl = gtk_button_new_with_label( "Wyswietl" );
 
    gtk_container_add( GTK_CONTAINER( win ), vbox );
    gtk_fixed_put(GTK_FIXED(vbox), wyswietl, 50, 200);
 
    GtkWidget *label=gtk_label_new("");
    gtk_fixed_put(GTK_FIXED(vbox), label, 50, 100);
 
    g_signal_connect( G_OBJECT( win ), "destroy", G_CALLBACK( gtk_main_quit ), NULL );
    g_signal_connect( G_OBJECT( wyswietl ), "clicked", G_CALLBACK( on_button2_clicked ), label );
 
    gtk_widget_show_all( win );
    gtk_main();
 
    return 0;
}
 

Gtk jest bardzo fajne, ale dla doświadczonych, może zacznij od QT?

0

Wielkie dzięki. Zastanawiałem się również nad QT. Mówisz, że lepsze na pierwszą aplikację okienkową ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1