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 :

Réutilisation d'un slot comme une fonction

  1. #1
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 427
    Points : 43 047
    Points
    43 047
    Par défaut Réutilisation d'un slot comme une fonction
    Bonjour,

    J'ai un slot effectuant un traitement, stockant une valeur selon le traitement dans un QLineEdit,puis affiche le QDialog conteneur( par déaut,celui-ci est caché).

    Je cherche à ré exploiter la fonction slot mais sans affficher le QDialog.

    Y a t'il moyen de passer un booléen fixé à true ou false selon mon cas au slot: exemple si true le code du slot affiche le qDialog,comportement normal lors du déclenchement du signal, si appel hors signal, appel avec paramètre false ne déclenchant pas l'affichage.

    Pour le moment à défaut de mieux je crée une variable booléenne globale testé par mon code de slot ( pour savoir si il faut afficher ou non leQDialog après traitement)

    Merci pour vos conseils.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    Bonjour,

    Pourquoi ne pas faire deux fonctions, une appelé par le slot, et l'autre par l'utilisateur qui accepte un boolean ?

    Pour ne pas avoir de duplication de code, la seconde appelle la première.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 427
    Points : 43 047
    Points
    43 047
    Par défaut utilisation slot comme 1 fonction
    J'y ai pensé LittleWhite.

    Cela me convient pour la création du code,par contre je me pose toujours la question est-il possible de passer une valeur true ou false comme paramètre à mon slot avec le signal prédéfini que j'utilise ( clicked )

    Pour moi non. Je peux par contre je présumes surcharger le signal clicked,,mais j'apprécierais une confirmation.

    En fait comme je l'expliquais lors de mon 1er post mon qDialog est affiché après test d'un booléen en variable globale, je change le booléen avant appel de la fonction pour afficher ou non le qDialog,se qui m'évites une fonction en plus étant appelé soit par le slot,soit à la main.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Sia,

    En clair, tu veux faire du compliqué alors qu'on peut faire simple, comme LittleWhite l'a indiqué.
    Si les cons volaient, il ferait nuit à midi.

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    J'ai trouvé une solution, avec une seule fonction.
    Il faut mettre un paramètre boolean au slot et lui donner une valeur par défault.
    Comme ça, lors du connect, on fait comme s'il n'avait pas de paramètre, mais au final, ce sont les valeurs du paramètres par défault qui seront prise en compte.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 427
    Points : 43 047
    Points
    43 047
    Par défaut complément à mon prob
    Merci LittleWhite,

    Finalement ma question parait plus compliqué que prévu.

    La soluce que me donnes est elle fiable ou vaut mieux t'il utiliser ce que j'ai fait.
    Si ce n'est pas documenté, le comportement peut changer avec l'évolution du Framework.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    Je pense qu'elle est fiable, j'utilise une fonctionnalitée du CPP pour avoir une valeur à un paramètre. Mais pour le moc, lui il croit qu'elle est sans paramètre, mais ça compile toujours et aucun warning (j'ai testé dans un petit projet).

    Je ne vois pas pourquoi cela ne fonctionnerait pas
    Fichiers attachés Fichiers attachés
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  8. #8
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 617
    Points : 188 587
    Points
    188 587
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    Si ce n'est pas documenté, le comportement peut changer avec l'évolution du Framework.
    Un slot est avant tout une fonction. Quand un slot est appelé, c'est juste comme s'il y avait un appel de fonction (Qt s'en charge, en regardant les connexions). Je ne vois donc aucune raison pour que ça change . Si, par contre, tu veux douter de ce point, réalise deux méthodes publiques (l'une qui effectue le traitement, l'autre qui appelle la première puis affiche la boîte de dialogue – ou avec une troisième méthode privée, contenant le traitement proprement dit).

    Commencer à chipoter en créant de nouveaux signaux, par contre, est une solution d'une complexité énorme par rapport aux deux évoquées plus haut (il est donc très probable qu'elle ne fonctionne pas du tout jusqu'à ce que tu aies passé un temps suffisant en débogage).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

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

Discussions similaires

  1. Utiliser une cellule comme une fonction
    Par Prometude dans le forum Excel
    Réponses: 8
    Dernier message: 15/02/2015, 18h10
  2. Executer du texte comme une fonction
    Par NicolasJolet dans le forum Excel
    Réponses: 10
    Dernier message: 05/03/2008, 18h57
  3. comment utiliser un programme comme une fonction dans une macro exel
    Par ERICKO dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/10/2007, 23h39
  4. [Lisp] Variable considérée comme une fonction
    Par lunart dans le forum Lisp
    Réponses: 2
    Dernier message: 07/04/2005, 15h48
  5. Passer une fonction comme argument à une fonction
    Par Cocotier974 dans le forum Général Python
    Réponses: 4
    Dernier message: 29/06/2004, 13h41

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