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 :

Desactivation momentannée d'un bouton d'un QDialogButtonBox


Sujet :

PyQt Python

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 89
    Points : 91
    Points
    91
    Par défaut Desactivation momentannée d'un bouton d'un QDialogButtonBox
    Bonjour,

    Je participe à un projet Open Source depuis des années et nous passons notre projet de Gtk en Qt(5).

    J'ai réalisé un QDialog avec QtCreator tout simple qui ouvre un QFileDialog pour ajouter un certain type de fichier. A ce moment (lors de l'import du fichier), le bouton ok désactivé lors du démarrage de l'application est désactivé puis le fichier est sauvegardé et la fenetre se ferme.

    J'aimerai savoir si l'on peut désactiver ce bouton (ou n'importe quel autre). Si pour un bouton normal, cela ne poserait pas de probleme, celui-ci fait partie d'une QDialogButtonBox. Je n'ai rien trouvé dans la doc ni dans le libre de Mark Summerfield sur ce sujet. Je pense pourvoir me servir du signal pressed pour cette tache mais je ne vois pas comment.
    Est-ce possible ? Si oui comment ?

    Par avance, Merci.

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je n'ai pas essayé, mais:

    Le QDialogButtonBox contient des QDialogButtonBox.StandardButton, dont le Ok qui s'appelle QDialogButtonBox.Ok

    Le QDialogButtonBox étant un container, il existe souvent une méthode qui permet d'accéder aux éléments contenus.

    A partir du QDialogButtonBox, la méthode .button(QDialogButtonBox.Ok) renvoie le QPushButton désigné (ici, le Ok), et un simple pushButton.setEnabled(False) devrait le désactiver.

    Si ça marche, ne pas oublier de le réactiver!
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 89
    Points : 91
    Points
    91
    Par défaut
    Merci tyrtamos pour la réponse. J'ai commencé à créer mon fichier, je le finis demain et je te tiens informé du résultat et des écueils que je ne manquerai pas de rencontrer.

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 89
    Points : 91
    Points
    91
    Par défaut
    Comme à chaque fois que je dis quelque chose, je ne le fais pas, je devrais le savoir depuis le temps.
    Bref, mon code était fait et parfaitement fonctionnel.

    D'ailleurs, en relisant le code de l'application en stand-alone que j'avais crée il y a plusieurs mois pour valider celle-ci, j'avais fais une approche similaire mais bourrée de fautes de débutant que je suis. Mon Ok était un oK et j'avais utilisé la methode setVisible au lieu de setEnabled.

    Bref; cela fonctionne, Merci. du moins pour l'instant mon bouton se désactive, je ne devrais pas parler trop vite. Je marquerais le sujet résolu dés que j'aurais ce que je voulais.

    Pour ceux qui passeraient après voici la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #set event handlers
    		self.btnImport.clicked.connect(self.load_new_transition)
    		self.btnImport.pressed.connect(self.active_import)
    		self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False)

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/04/2007, 16h42
  2. [VB6]desactiver puis reactiver un bouton avec un autre
    Par Spiritkiller dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 04/05/2006, 10h50
  3. Réponses: 13
    Dernier message: 12/01/2006, 21h06
  4. desactiver bouton pour certains enregistrements
    Par GymTonic dans le forum IHM
    Réponses: 7
    Dernier message: 04/01/2005, 23h46
  5. [QUICK REPORT] DESACTIVER LE BOUTON DE REDUCTION
    Par freud dans le forum Bases de données
    Réponses: 11
    Dernier message: 26/07/2004, 00h43

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