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é)
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 #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(); }
mais des erreurs à la compilation:
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; }
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...
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'
quelle est la bonne syntaxe?
Partager