Anzeige:
Ergebnis 1 bis 3 von 3

Thema: [GTK] Funktion mehrere Widgets mitgeben

  1. #1
    Registrierter Benutzer Avatar von guardian
    Registriert seit
    16.07.2003
    Beiträge
    25

    Question [GTK] Funktion mehrere Widgets mitgeben

    Hallöchen,

    gibts ne Möglichkeit einer Funktion
    Code:
    void on_Filesel_ButtonOK_clicked( GtkButton* button, gpointer user_data );
    mehrere Widgets zu übergeben ? Angenommen ich habe einen Dialog erschaffen, in welchem der User eine Datei zum Öffnen anklicken soll/kann. Wenn er eine Datei ausgesucht hat, klickt er OK. Im Hauptwidget (besteht z.b. aus nem Textview- und buffer und Menü) soll dann die ausgelesene Datei eingefügt werden (in Textview).

    Nun müsste ich ja rein theoretisch der Funktion (siehe oben) den Fileselection-Dialog mit geben, und zusätzlich noch den irgendwie den Textbuffer bzw. Textview, um dass man die Datei auslesen kann und danach einfügen kann, und dass man weiß, von welchem Filesel-Dialog gerade das Signal kam.

    Wobei sich auch schon wieder eine Schwirigkeit ergibt: dem Fileselection-Dialog ist der Textbuffer- und Textview unbekannt, da es ja 2 extra Widgets sind (Textbuffer- und view befinden sich im Mainwidget, und der Filesel-Dialog ist ja auch ein extra Widget).

    Gibt es da eine Möglichkeit das zu vereinen (ausser das ich Textview global mache) ?

    Habe mal was gelesen, dass user_data eine Art Array mit verschiedenen Informationen bzw. Widgets sein kann - in der Art wie char* argv[] aus der main-Funktion.

    MfG guardian
    If you have any problems feel free to mail me and I'll probably feel free to ignore you :p

  2. #2
    Registrierter Benutzer
    Registriert seit
    17.04.2002
    Beiträge
    185
    Hallo,
    es gibt zwei Möglichkeiten. Du kannst über user_data einen pointer auf einen array mit den widgets übergeben.
    Eine andere Möglichkeit ist, wenn du das interface mit glade erstellt hast, dann kannst du dir die widgets mit der Funktion hohlen:
    lookup_widget(GTK_WIDGET(button), "name_des_widgets");

    For a world where freedom and knowledge survives the compiler! (https://www.fsfe.org)

    If art interprets our dreams, the computer executes them in the guise of programs!

  3. #3
    Registrierter Benutzer Avatar von guardian
    Registriert seit
    16.07.2003
    Beiträge
    25
    Dank' dir

    Ich hab auch noch ne andere Möglichkeit gefunden, indem ich eine Struktur anlege:
    Code:
    typedef struct
    {
       gchar*  Content;
       GError* Err;
       FILE*   Stream;
       /* usw. */
    }FC;
    (lässt sich so auch realisieren)

    MfG guardian
    If you have any problems feel free to mail me and I'll probably feel free to ignore you :p

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •