Partage
  • Partager sur Facebook
  • Partager sur Twitter

QMessageBox

Sujet résolu
    30 mars 2022 à 10:31:07

    Bonjour, 

    Je suis entrain de travailler avec Python3 et Qt5 et je suis bloqué dans cette erreur depuis quelques temps :  TypeError: critical(QWidget, str, str, buttons: Union[QMessageBox.StandardButtons                                          , QMessageBox.StandardButton] = QMessageBox.Ok, defaultButton: QMessageBox.Standa                                          rdButton = QMessageBox.NoButton): argument 4 has unexpected type 'int'

    la ligne de code : QMessageBox.critical(None,txt.echec,txt.failEIVerifCnx  % (inst.__class__.__name__,str(inst.args[0])),0, 0).

    Merci d'avoir pris le temps de lire. 

    • Partager sur Facebook
    • Partager sur Twitter
      30 mars 2022 à 10:41:25

      Bonjour,

      C'est compliqué, déjà parce-que c'est difficilement lisible, et parce-qu'on a pas un petit code qui permet de reproduire l'erreur.

      Peux-tu créer un code simple créant le problème à l'identique ?

      • Partager sur Facebook
      • Partager sur Twitter

      Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
      La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

        30 mars 2022 à 10:48:07

        if not isinstance(inst,errors.EndOfTest) and not isinstance(inst,errors.UserCancelation):
                log_system.write(txt.failEIVerifCnx+str(inst.args[0]))
                QMessageBox.critical(None,txt.echec,txt.failEIVerifCnx  % (inst.__class__.__name__,str(inst.args[0])),0, 0)
        

        -
        Edité par AyCH06 30 mars 2022 à 10:48:39

        • Partager sur Facebook
        • Partager sur Twitter
          30 mars 2022 à 11:10:36

          Comment je reproduis ?
          • Partager sur Facebook
          • Partager sur Twitter

          Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
          La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

            30 mars 2022 à 11:12:54

            si tu regardes la doc de la fonction https://doc.qt.io/qtforpython-5/PySide2/QtWidgets/QMessageBox.html 

            static PySide2.QtWidgets.QMessageBox.critical(parent, title, text[, buttons=QMessageBox.Ok[, defaultButton=NoButton]])


            le 4ème élément attend un bouton (StandardButton) et est optionnel (par défaut, il y a juste le bouton OK), or toi tu lui fourni la valeur 0; idem pour le 2ème paramètre qui attend le bouton (valide) par défaut

            la fonction renvoie ici un StandardButton (le bouton cliqué)

            Son autre définition 

            static PySide2.QtWidgets.QMessageBox.critical(parent, title, text, button0, button1)

            attend le même type d'éléments, mais renvoie un entier

            -
            Edité par umfred 30 mars 2022 à 11:27:14

            • Partager sur Facebook
            • Partager sur Twitter

            QMessageBox

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            • Editeur
            • Markdown