bonjour, j'ai créé une petite interface graphique en utilisant gtkmm (et glademm) et je veux y ajouter une fonction s'exécutant toute les secondes.

j'ai donc voulu utiliser Glib::signal_timeout

voilà mon CMainWindow.h (abrégé)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
#include <gtkmm.h>
#include <libglademm.h>
 
class CMainWindow: public Gtk::Window {
protected:
    // le timer
    sigc::connection timer;
//fonction du timer
    bool Tick( void );
public:
    CMainWindow();
    virtual ~CMainWindow();
}
et mon mon CMainWindow.cpp (abrégé)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
#include "CMainWindow.h"
 
CMainWindow::CMainWindow() {
    /* initialisation du timer */
    sigc::slot<bool> myslot =sigc::mem_fun(*this,&CMainWindow::Tick);
    timer = Glib::signal_timeout().connect(myslot,1000);
}
 
CMainWindow::~CMainWindow() {
    timer.disconnect();
}
 
/*
 * ================================================================
 * fonction du timer
 */
bool CMainWindow::Tick( void ){
    ...
    return true;
}
mais des erreurs à la compilation:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
/usr/include/sigc++/functors/slot.h: In static member function "static T_return sigc::internal::slot_call0<T_functor, T_return>::call_it(sigc::internal::slot_rep*) [with T_functor = sigc::bound_mem_functor0<bool, CMainWindow>, T_return = void]":
/usr/include/sigc++/functors/slot.h:110:   instantiated from "static void* (* sigc::internal::slot_call0<T_functor, T_return>::address())(void*) [with T_functor = sigc::bound_mem_functor0<bool, CMainWindow>, T_return = void]"
/usr/include/sigc++/functors/slot.h:454:   instantiated from "sigc::slot0<T_return>::slot0(const T_functor&) [with T_functor = sigc::bound_mem_functor0<bool, CMainWindow>, T_return = void]"
/usr/include/sigc++/functors/slot.h:1130:   instantiated from "sigc::slot<T_return, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [with T_functor = sigc::bound_mem_functor0<bool, CMainWindow>, T_return = void]"
../src/CMainWindow.cpp:33:   instantiated from here
/usr/include/sigc++/functors/slot.h:103: error: return-statement with a value, in function returning 'void'
je ne comprend pas bien l'erreur si ce n'est qu'il considère que ma fonction retourne void alors qu'elle retourne un bool...

quelle est la bonne syntaxe?