[gtk+]dateinamen von dlg an anderes widget übergeben



  • hallöchen @all,

    ich habe 2 widgets, einmal das "hauptfenster" und zum anderen den file chooser dialog. wie stellt man es am besten an, den selektierten dateinamen aus dem dialog, an ein label im hauptfenster zu senden und sich ausgeben zu lassen ?

    wenn der user im dialog die datei ausgewählt hat, drückt er "ok". dann wird der dateiname mittels

    gtk_file_chooser_get_filename()
    

    an eine lokale variable übergeben.

    hier was ich bisher habe:

    void on_Cmd_DlgOpen_clicked( GtkButton* button, gpointer user_data ) 
    {
       gchar* selFilename = gtk_file_chooser_get_filename( GTK_FILE_CHOOSER( button ) );
    
       GtkWidget* Lbl_PicPath = lookup_widget( GTK_WIDGET( button ), "Lbl_PicPath" );
    
       gtk_label_set_text( GTK_LABEL( Lbl_PicPath ), selFilename );   
    
       /* g_free( selFilename ); */
    }
    

    mit der funktion lookup_widget komm ich allerdings momentan auch nicht wirklich weiter, da ich mich ja noch im dialog befinde, das label "Lbl_PicPath" allerdings ja im hauptfenster definiert wird.

    ok man könnte jetzt sicherlich die variable global machen, oder von funktion zu funktion als parameter weiterleiten, das ist aber nicht unbedingt so ein toller weg wie ich finde (zumindest in diesem fall).

    vielen dank schon mal 🙂



  • Sind die Widgets eigenständige Objekte? Dann könntest du deinen Dateinamen (btw würde ich den eher in einem std::string oder etwas vergleichbaren speichern als in einem blanken char-Pointer) als Member des Widget definieren und über passende Methoden nach außen weiterreichen).



  • ja sind eigenständig. allerdings programmiere ich gtk+ (also c) und nicht c++ 🙂
    aber vielleicht könnte man den dateinamen ja wirklich irgendwie als member definieren. muss ich mal ausprobieren.

    thx erst mal


Anmelden zum Antworten