Anzeige:
Ergebnis 1 bis 3 von 3

Thema: mit g_signal_connect variable übergeben

  1. #1
    waylander
    Gast

    mit g_signal_connect variable übergeben

    hi,

    Ich hab da ein grösseres Anliegen. Ich weiss einfach nicht wie ich mit g_signal_connect nen einfachen int wert übergeben kann, also beispielsweise:

    Code:
    int g = 5;
    
    
    g_signal_connect (G_OBJECT(knopf),"released",
                      G_CALLBACK(test_func),g);
    das funktioniert net, ich hab auch schon dies versucht:


    Code:
    
    
    void test_func(GtkWidget *widget, 
          gpointer g)
    {
    ...
    }
    
    int g = 5;
    g_signal_connect( GTK_OBJECT( knopf ), "released",
                        G_CALLBACK(test_func ),&g );
    dann hab ich zwar die Adresse, ich bekomm den Wert aber net raus..

    wäre super wenn ihr mir da helfen könntet

    mfg
    waylander

  2. #2
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Zum Voraus: Ich habe keine Ahnung von Gtk/Gnome-Programmierung, hab das nur im Zusammenhang mit JavaGtk/Gnome und SWT kurz mal ein bisschen angeguckt.

    Gehts denn, wenn du den int nach string (oder Char-Array in C, wohl eher) konvertierst? Mit sprintf oder so.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  3. #3
    Registrierter Benutzer
    Registriert seit
    10.04.2001
    Ort
    Bremen
    Beiträge
    339

    Re: mit g_signal_connect variable übergeben

    Hi!

    Original geschrieben von waylander
    hi,

    Ich hab da ein grösseres Anliegen. Ich weiss einfach nicht wie ich mit g_signal_connect nen einfachen int wert übergeben kann, also beispielsweise:

    Code:
    int g = 5;
    
    
    g_signal_connect (G_OBJECT(knopf),"released",
                      G_CALLBACK(test_func),g);
    das funktioniert net, ich hab auch schon dies versucht:


    Code:
    
    
    void test_func(GtkWidget *widget, 
          gpointer g)
    {
    ...
    }
    
    int g = 5;
    g_signal_connect( GTK_OBJECT( knopf ), "released",
                        G_CALLBACK(test_func ),&g );

    dann hab ich zwar die Adresse, ich bekomm den Wert aber net raus..

    wäre super wenn ihr mir da helfen könntet

    mfg
    waylander
    Das erste Beispiel war schon fast richtig:
    Code:
    int g = 5;
    
    g_signal_connect (G_OBJECT(knopf),"released",
                      G_CALLBACK(test_func), GINT_TO_POINTER(g));
    Deine test_func sollte jetzt ungefähr z.B. so aussehen:
    Code:
    void test_func(GtkWidget *widget, 
          gpointer data)
    {
       gint g = GPOINTER_TO_INT(data);
       .
       .
       .
    }
    Ich hoffe das ist so korrekt, habe lange kein C/Gtk+ verwendet. Python/PyGTK kamen dazwischen

    Näheres kannst du auch hier nachlesen.

    c ya,
    Tobias

Lesezeichen

Berechtigungen

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