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

PyQt Python Discussion :

QStackedWidget : naviagation entre les widgets [QtGui]


Sujet :

PyQt Python

  1. #1
    Membre du Club

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2014
    Messages : 39
    Points : 41
    Points
    41
    Billets dans le blog
    1
    Par défaut QStackedWidget : naviagation entre les widgets
    Bonjour, j'utilise un QStackedWidget comme centralWidget de mon QMainWindow et j'ai créé quatre QWidget personnalisé et je les ai ajoutés au stack

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            etatFen= fenetre.FicheEtat(self)
            historiqueFen = fenetre.Historique(self)
            paieFen = fenetre.FichePaie(self)
            sBenefFen = fenetre.SBenefice(self)
            self.stackedWidget = QStackedWidget()
            self.stackedWidget.addWidget(etatFen)
            self.stackedWidget.addWidget(historiqueFen)
            self.stackedWidget.addWidget(paieFen)
            self.stackedWidget.addWidget(sBenefFen)
    je veux naviguer entre ces widgets via des menus. le problème est que lorsque j'utilise self.stackedWidget.setCurrentIndex(1), normallement c'est le widget historiqueFen qui doit s'afficher mais ce n'est pas le cas. Et paradoxalement quand je fais self.stackedWidget.setCurrentIndex(2), le widget paieFen s'affiche!!!!!! Quelqu'un a-t-il une explication????

    Merci

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    salut,

    normallement c'est le widget historiqueFen qui doit s'afficher mais ce n'est pas le cas.
    Et c'est lequel ?

    Tu es sûr du nommage de tes widgets ? fenetre.Historique désigne bien le widget attendu ?

    l'explication doit forcément se trouver de ce côté là, si tu fais self.stackedWidget.setCurrentIndex(1) il est certain que c'est le widget d'index 1 qui apparaît.

  3. #3
    Membre du Club

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2014
    Messages : 39
    Points : 41
    Points
    41
    Billets dans le blog
    1
    Par défaut
    Et c'est lequel ?
    pour l'affichage, je n'ai rien sauf ma fénètre principale et mes menus...

    Tu es sûr du nommage de tes widgets ? fenetre.Historique désigne bien le widget attendu ?
    Oui, je suis sûr des nommages j'ai vérifié et c'est exactement comme dans le post.

    l'explication doit forcément se trouver de ce côté là, si tu fais self.stackedWidget.setCurrentIndex(1) il est certain que c'est le widget d'index 1 qui apparaît.
    Malheureusement, je viens de faire 48h de vérification, après les premières 24h, je me suis dit que peut-être j'étais fatigué, j'ai dormi et à mon reveil je me suis jeté là dessus et nothing..... Je ne sais plus vraiment quoi faire... Je continue.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    pour l'affichage, je n'ai rien sauf ma fénètre principale et mes menus...
    Ça, c'est plus clair, la page 1 ne s'affiche pas parce que Qt rencontre un problème pour l'afficher.

    Tu lances bien ton appli dans un terminal et tu n'as aucun message d'erreur ?

    Il est possible qu'il y aie une erreur de layout dans la disposition de tes widgets, il suffit de confondre ses layout pour rendre des widgets invisibles.

    Est-ce que fenetre.Historique(self) possède une méthode __init__(), je veux dire pas une méthode setupUi() auquel cas il aurait fallut l'appeler.

    Peux-tu tester ton widget directement dans un terminal ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Python 2.7.3 (default, Feb 27 2014, 20:00:17) 
    [GCC 4.6.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import sys
    >>> from PyQt4 import QtCore, QtGui
    >>> from fenetre import Historique
    >>> a = QtGui.QApplication([])
    >>> w = QtGui.QWidget()
    >>> g = QtGui.QGridLayout(w)
    >>> c = Historique()
    >>> g.addWidget(c, 0, 0, 1, 1)
    >>> w.show()
    Ouvre ton terminal dans le dossier où se trouve le fichier de ce widget, bien sûr.

    Là, soit il s'affiche correctement, soit tu as une erreur en retour, soit aucun des deux et, ça, ça confirmerait un problème de layout.

  5. #5
    Membre du Club

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2014
    Messages : 39
    Points : 41
    Points
    41
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par VinsS Voir le message

    Tu lances bien ton appli dans un terminal et tu n'as aucun message d'erreur ?
    Oui, effectivement je n'avais pas de message d'erreur et c'est ce qui me fatiguais, alors je me suis dit après lecture de votre post de proceder avec des print et devinez quoi, rien aussi. Et j'ai passé la nuit à chercher en vain.

    Citation Envoyé par VinsS Voir le message
    Est-ce que fenetre.Historique(self) possède une méthode __init__(), je veux dire pas une méthode setupUi() auquel cas il aurait fallut l'appeler.
    Oui et non et c'est ce matin que j'ai vu cela. Au lieu d'écrire init, j'ai écrit ini.....

    Je suis vraiment desolé de vous avoir derangé avec ça et merci beaucoup pour ces explications claires.

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

Discussions similaires

  1. Espacement entre les widgets QVBoxLayout
    Par firewall7720 dans le forum Qt
    Réponses: 3
    Dernier message: 03/02/2011, 11h11
  2. QHBoxLayout sans espacements entre les widgets
    Par mister3957 dans le forum Qt
    Réponses: 2
    Dernier message: 09/07/2010, 21h58
  3. Réponses: 67
    Dernier message: 16/12/2007, 13h41
  4. Benchmark entre les langages
    Par El blérot dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 27/12/2002, 01h22
  5. Réponses: 3
    Dernier message: 07/05/2002, 16h06

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