IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Fonctions non opérationnelles sur l'onglet actif

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Fonctions non opérationnelles sur l'onglet actif
    Bonjour à tous.

    Je suis en train de programmer un tableur et j'aimerais créer de nouvelles pages sous formes d'onglets.
    Pour ce faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     MainWindow::MainWindow()
    {   
        tabBar = new QTabWidget;
        feuille1 = new Spreadsheet;
        feuille2 = new Spreadsheet;    
        tabBar->addTab(feuille1 ,("Feuille 1"));
        tabBar->addTab(feuille2,("Feuille 2"));
        setCentralWidget(tabBar);
    ...
    }
    Donc j'ai bien mes différents onglets.

    Le problème c'est que mes fonctions maintenant fonctionne que sur le premier Widget et pas avec tous les autres.
    Lorsque je change d'onglet et passe à la feuille numéro 2, ces fonctions par exemple ne fonctionne plus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     connect(cutAction, SIGNAL(triggered()),  tabBar->currentWidget(), SLOT(cut()));
    // ou 
     connect(autoRecalcAction, SIGNAL(toggled(bool)), tabBar->currentWidget(), SLOT(setAutoRecalculate(bool)));
    // ou
     tabBar->currentWidget()->addAction(cutAction);
    J'aimerais que mes fonctions soient fonctionnelles quelque soit l'onglet actif en cours.
    Le problème vient surement de currentWidget() mais je n'ai pas trouvé autre chose à appliquer d'après la doc'
    Merci par avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Avec tabBar->currentWidget(), tu n'effectues la connexion qu'avec un seul widget, celui qui est affiché au moment précis où la ligne connect(...) est exécutée.

    Pour obtenir ce que tu souhaites, il te faut effectuer la connexion avec chacun des widgets que tu insères.
    Une autre solution consiste à coder un slot (ou lambda) qui prend le currentWidget() au bon moment, et exécute (explicitement) son slot cut().
    Dernière modification par Invité ; 07/05/2022 à 23h47.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bonsoir,

    Merci de tes précisions Winjerome !

    J'ai résolu mon problème en passant à mes connect() une fonction pageCourante() qui va retourner l'onglet courant avec la fonction findChild.

    Je passe le sujet en résolue

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Modèles importés mais non affichés sur l'onglet "Mise en page"
    Par LaChouette dans le forum SharePoint
    Réponses: 2
    Dernier message: 02/10/2014, 10h45
  2. Rester sur l'onglet actif après avoir cliquer sur un bouton submit
    Par gasquy dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/10/2011, 08h56
  3. [XL-2003] MAcro pour calcul automatique uniquement sur l'onglet actif
    Par Arndt dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/07/2010, 15h12
  4. Réponses: 5
    Dernier message: 30/12/2006, 06h42
  5. Menus : fonction "tri" non disponible sur un autre PC
    Par niavlys77 dans le forum Access
    Réponses: 1
    Dernier message: 02/05/2006, 19h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo