Bonjour,
Depuis quelques temps j’apprends le c++ et je me suis mis à gtkmm. J’ai fait un programme pour calculer surface et volume depuis une fenêtre. Tout fonctionne. Sauf une chose concernant l’utilisation de signal_activate()
Voici un bout du code concerné
switch (forme)
{
case 1: //carré
cacheEntry();
labelForme.set_label(listeDeroulante.get_active_text());
labelLongueur.set_label("longueur");
elongueur.signal_activate().connect([this]() { calcul(); });
break;
case 2: //rectangle
//Fenetre::sigc::connection::disconnect(elargeur);
elargeur.set_sensitive(true);
labelForme.set_label(listeDeroulante.get_active_text());
labelLongueur.set_label("longueur");
labelLargeur.set_label("largeur");
elongueur.signal_activate().connect([this]() { elargeur.grab_focus(); });
elargeur.signal_activate().connect([this]() { calcul(); });
break;
Depuis la fenêtre si je commence par l’option l’option 2 tout se passe correctement. Si je passe par l’option 1 et ensuite option 2, en appuyant sur la touche entrée le focus passe bien dans la case suivante mais lance également la fonction calcul() , ce que je cherche à éviter. Donc je pense que le signal_activate n’est pas déconnecter de elongueur après passage de l’option 1.
Après moult recherche sur internet je n’ai pas compris comment déconnecter le signal. Merci pour l’aide.
+0
-0