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 :

Message avertissement sur QLayout [QtGui]


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Septembre 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2015
    Messages : 148
    Par défaut Message avertissement sur QLayout
    Bonjour les amis,

    Je suis toujours sur l'écriture de mon application qui, pour le moment fonctionne bien seulement, il y a un bémol, lors de l'affichage de courbes il y a un message qui s'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    WARNING:
    QWidget::setLayout: Attempting to set QLayout "QFormLayout" on Fenetre "MainWindow", which already has a layout
    La disposition de mes objets est comme indiquée dans la capture ci-dessous que j'ai dessiné avec Qt Designer:
    Nom : graphe.jpg
Affichages : 828
Taille : 64,2 Ko

    Je ne vois pas le problème
    Merci

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par noureddine1967 Voir le message
    Je suis toujours sur l'écriture de mon application qui, pour le moment fonctionne bien seulement, il y a un bémol, lors de l'affichage de courbes il y a un message qui s'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    WARNING:
    QWidget::setLayout: Attempting to set QLayout "QFormLayout" on Fenetre "MainWindow", which already has a layout
    Tu as probablement créé un layout principal qui englobe des sous-layout (c'est ce que je fais quand je veux positionner mes widgets) et créé les sous-layout avec un parent.
    Or quand le layout principal récupère les sous-layout, il en devient lui-même le parent.

    Exemple: 2 QLineEdit pour gérer une saisie nom et prénom placés horizontalement
    Code python : 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    #!/usr/bin/env python3
    # coding: utf-8
     
    import sys
     
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    from PyQt5.QtWidgets import *
     
    appli=QApplication(sys.argv)
    mainWid=QMainWindow()
    mainWid.setCentralWidget(QWidget(mainWid))
     
    nomLabel=QLabel("Nom")
    nomEdit=QLineEdit()
    nomLayout=QVBoxLayout()
    nomLayout.addWidget(nomLabel, 0)
    nomLayout.addWidget(nomEdit, 0)
    nomLayout.addStretch(1)
     
    prenomLabel=QLabel("Prénom")
    prenomEdit=QLineEdit()
    prenomLayout=QVBoxLayout()
    prenomLayout.addWidget(prenomLabel, 0)
    prenomLayout.addWidget(prenomEdit, 0)
    prenomLayout.addStretch(1)
     
    mainLayout=QHBoxLayout(mainWid.centralWidget())
    mainLayout.addLayout(nomLayout)
    mainLayout.addLayout(prenomLayout)
     
    mainWid.show()
    appli.exec_()

    Si je mets un parent à un (ou deux) VBoxLayout j'ai le même message et le layout n'apparait plus dans la fenêtre. Chose curieuse toutefois, on peut quand-même mettre un parent aux sous-widgets même si elles sont récupérées par un layout
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nomLabel=QLabel("Nom", parent=mainWid.centralWidget())
    nomEdit=QLineEdit(parent=mainWid.centralWidget())
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Septembre 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2015
    Messages : 148
    Par défaut
    Bonjour,

    Merci pour votre réponse, si j'ai bien compris, ce message n'influe en rien sur le bon fonctionnement de l'application ?

    Un autre message qui s'affiche à la fin de l'exécution de l'application :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    WARNING:
    QGuiApplication::font(): no QGuiApplication instance and no application font set.
    Merci infiniment pour votre aide

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par noureddine1967 Voir le message
    Merci pour votre réponse, si j'ai bien compris, ce message n'influe en rien sur le bon fonctionnement de l'application ?
    C'est donc ça ton premier réflexe? Dire "oh ben tant que ça marche"... Tout comme le type qui tombe de la tour. A chaque étage il dit "jusqu'ici tout va bien" ! As-tu lu ma phrase "... et le layout n'apparait plus dans la fenêtre" ?
    Donc t'as qu'à prendre mon exemple et remplacer nomLayout=QVBoxLayout() par nomLayout=QVBoxLayout(mainWid.centralWidget()) et tu verras si le message influe ou n'influe pas. En plus ce n'est pas "le message qui influe" mais "l'application qui a un souci et qui le montre par un message tout en pouvant parfois s'en sortir quand-même"

    Citation Envoyé par noureddine1967 Voir le message
    Un autre message qui s'affiche à la fin de l'exécution de l'application :
    Mouais. Elle m'a l'air bien bancale cette application...

    Citation Envoyé par noureddine1967 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WARNING:
    QGuiApplication::font(): no QGuiApplication instance and no application font set.
    Ben quelque part tu appelles xxx.font() (xxx étant un QGuiApplication ou un de ses héritiers) alors que xxx n'existe plus (ou même n'a jamais été un QGuiApplication)...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre confirmé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Septembre 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2015
    Messages : 148
    Par défaut
    C'est donc ça ton premier réflexe? Dire "oh ben tant que ça marche"... Tout comme le type qui tombe de la tour. A chaque étage il dit "jusqu'ici tout va bien" ! As-tu lu ma phrase "... et le layout n'apparait plus dans la fenêtre" ?
    Pas du tout, j'ai bien chercher à régler ce problème mais comme j'utilise Qt Designer pour le dessin de mes objets je n'ai pas pu le solutionner.

  6. #6
    Membre confirmé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Septembre 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2015
    Messages : 148
    Par défaut
    Merci Sve@r

    Votre coup a donné son fruits

    J'ai pu résoudre le premier problème du message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WARNING:
    QWidget::setLayout: Attempting to set QLayout "QFormLayout" on Fenetre "MainWindow", which already has a layout
    Pour le deuxième message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    WARNING:
    QGuiApplication::font(): no QGuiApplication instance and no application font set.
    il me faut ça

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

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