gtk+ problem beim redraw und ersten zeichnen eines window



  • Habe mir eben mal dieses gtk+ prog ausgedacht, leider gibt es ein Problem mit dem Redraw. Das Fenster wird zwar beim verschieben neu gezeichnet, aber beim ersten starten, bleibt der screen leer. Wie sage ich es dem gtk+, dass es die Linie sofort beim erstellen des Fenters zeichnen soll, nicht nur beim verscheiben des Fensters ?

    gruß,
    Mirko

    #include <gtk/gtk.h>
    
    void quit_function( GtkWidget *widget, gpointer data ) {
        g_print( "Ende !\n" );
        gtk_main_quit();
    }
    
    static gboolean button_press_event( GtkWidget *widget, GdkEventButton *event ) {
        //printf ("test: %d\n",event->button);
        if (event->button == 1)
          gdk_draw_point (widget->window, widget->style->black_gc, event->x,event->y);
        return TRUE;
    }
    
    gint expose(GtkWidget *widget, GdkEventExpose *event, gpointer data) {
        gdk_draw_line (widget->window,widget->style->black_gc,10, 10, 250, 250);
        // widget->style->white_gc
        // widget->style->black_gc
        return TRUE;
    }
    
    int main( int argc, char *argv[] ) {
        GtkWidget *window;
        gtk_init( &argc, &argv );
        window = gtk_window_new( GTK_WINDOW_TOPLEVEL);
        gtk_window_set_default_size (GTK_WINDOW(window), 640, 200);
        gtk_widget_set_events (window,GDK_BUTTON_PRESS_MASK);
        gtk_signal_connect( GTK_OBJECT( window), "destroy",GTK_SIGNAL_FUNC( quit_function ), NULL );
        gtk_window_set_title( GTK_WINDOW( window ), "Test_Applikation");
        gtk_signal_connect (GTK_OBJECT(window), "expose_event",GTK_SIGNAL_FUNC(expose), NULL);
        gtk_signal_connect (GTK_OBJECT(window), "configure_event",GTK_SIGNAL_FUNC(expose), NULL);
        gtk_signal_connect (GTK_OBJECT(window), "button_press_event",GTK_SIGNAL_FUNC(button_press_event), NULL);
        gtk_widget_show( window );
        gtk_main();
        return 0;
    }
    


  • Vielleicht hilft dir die Funktion gtk_widget_queue_draw.


Anmelden zum Antworten