Anzeige:
Ergebnis 1 bis 5 von 5

Thema: gtk, g_signal_connect und Methoden einer Klasse

  1. #1
    Registrierter Benutzer
    Registriert seit
    20.11.2001
    Ort
    Germany, Offenburg
    Beiträge
    47

    gtk, g_signal_connect und Methoden einer Klasse

    Hi,
    ich hab Probleme per g_signal_connect ein Object mit einer Klassenmethode zu verknüpfen ....

    Mal ein Auszug:
    Code:
    class DirTree {
       public:
          void New ();
          void GotoSelectedDirectory ();
       ...
    };
    
    void DirTree::New () {
    ...
    signalHandler = g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (GotoSelectedDirectory()), NULL);
    }
    
    void DirTree::GotoSelectedDirectory () {
    ...
    }
    Die Beschwerde vom Compiler lautet:
    cannot convert `DirTree::GotoSelectedDirectory()' from type `void' to type `void (*)()'

    Kann mir jemand erklären wie man das ordentlich connected?? Bitte ist ziemlich dringend; deadline ist an diesem Wochenende*argh*...

    Dankeschön und viele Grüße,
    TB<tuxboy>

  2. #2
    Registrierter Benutzer
    Registriert seit
    25.12.1999
    Ort
    Stuttgart
    Beiträge
    259
    Hi tuxboy,

    bitte keine Mehrfachpostings, danke.

    Gruß micha
    IRC: irc.euirc.net #tux

  3. #3
    Registrierter Benutzer
    Registriert seit
    16.09.2002
    Beiträge
    73
    Ich habe leider auch noch nicht viel mit gtk gemacht, so wie ich das sehen müsste es aber so gehen:

    Code:
    class DirTree {
       public:
          void New ();
          void GotoSelectedDirectory ();
       ...
    };
    
    void GotoSelectedDirectory_static(void* data){
    	if (!data) return;
    	((DirTree*)data)->GotoSelectedDirectory();
    }
    
    void DirTree::New () {
    ...
    signalHandler = g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (GotoSelectedDirectory_static), this);
    }
    
    void DirTree::GotoSelectedDirectory () {
    ...
    }
    Kann durchaus sein, daß das völliger Quatsch ist.

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Ich kenn mich mit GTK nicht aus, aber normalerweise kann man keine normale Methode als Callback verwenden, sondern nur als static deklarierte.

    Vielleicht ist es einfacher, wenn du die C++ API von GTK benutzt.

    http://www.gtkmm.org/

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  5. #5
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Original geschrieben von micha
    Hi tuxboy,

    bitte keine Mehrfachpostings, danke.

    Gruß micha
    Ich schliesse mich dem an!

    Hab die beiden Threads zusammengeführt.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

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