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

Qt Discussion :

Gérer la visibilité et l'accessibilité de dérivés graphiques QObject


Sujet :

Qt

  1. #1
    Membre actif Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Points : 203
    Points
    203
    Par défaut Gérer la visibilité et l'accessibilité de dérivés graphiques QObject
    J'ai une application avec des QCheckBox qui ne doivent pas être accessibles pendant l'exécution d'une méthode.

    Cette méthode est appelée par un QPushButton toggled down.

    Puis je rendre indisponible l'état des QChesckBox ? En l'occurence les bloquer en checked()=true. ?

    Add : peut on les rednre invisible, ou appliquer un effet grisé ?


    Merci

  2. #2
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Salut,

    Citation Envoyé par ttone Voir le message
    J'ai une application avec des QCheckBox qui ne doivent pas être accessibles pendant l'exécution d'une méthode.
    Si la méthode est exécutée dans le thread principal, ils ne seront de toute façon pas accessible (ou plutôt personne ne pourra interagir avec).

    Citation Envoyé par ttone Voir le message
    Puis je rendre indisponible l'état des QChesckBox ? En l'occurence les bloquer en checked()=true. ?
    Indisponible oui, cf ci-dessous. Tous les cocher est en général une mauvaise idée (les boutons appartiennent à l'utilisateur: tu n'as pas à cocher quoi que ce soit pour lui en général, à part à l'initialisation ou si tu as une option genre (de)select all).

    Citation Envoyé par ttone Voir le message
    Add : peut on les rednre invisible, ou appliquer un effet grisé ?
    Invisible: hide() ou setVisible(false)
    "effet grisé": setDisabled(true).

  3. #3
    Membre actif Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Points : 203
    Points
    203
    Par défaut
    Merci

    Indisponible oui, cf ci-dessous. Tous les cocher est en général une mauvaise idée (les boutons appartiennent à l'utilisateur: tu n'as pas à cocher quoi que ce soit pour lui en général, à part à l'initialisation ou si tu as une option genre (de)select all).
    On est d'accord, il est hors de question que je simule un utilisateur, c'est pourquoi je veux les rendre disable,

    je ne peux pas jouer avec le freeze non plus, la méthode fonctionne en " dirac" : un court calcul, mais surtout un état ensuite.


    HS : on est d'accord qu'un cochage/décochage à l'intérieur du code n'envoi aucun signal ?

  4. #4
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Par curiosité, c'est quoi dirac? (Si c'est un acronyme, peux-tu juste filer le nom complet stp? Je me débrouillerais pour les recherches )

  5. #5
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Citation Envoyé par ttone Voir le message
    HS : on est d'accord qu'un cochage/décochage à l'intérieur du code n'envoi aucun signal ?
    Si ça envoie les signaux classique de cochage/décochage. Mais QObject met la méthode blockSignals à ta disposition pour les court-circuiter, faut juste pas oublié de les réactiver après

  6. #6
    Membre actif Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Points : 203
    Points
    203
    Par défaut
    Ok, juste pour vérifier que je n'ai pas besoin d'actualiser des méthodes slottées au changement d'état après un setChecked(true ou false)... (tu confirmes?)


    HS :
    dirac : juste u terme de traitement du signal, c'est une impulsion très courte en résumé...
    1. dirac : impulsion courte meme si l'ordre continu
    2. toggle : impulsion on/off, chgmt a reactualisation de l'ordre
    3. trigger : impulsion continu pendant l'ordre...
    apres a toi de changer "ordre" par bouton, méthode, etc...

  7. #7
    Membre actif Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Points : 203
    Points
    203
    Par défaut
    Tous les cocher est en général une mauvaise idée (les boutons appartiennent à l'utilisateur: tu n'as pas à cocher quoi que ce soit pour lui en général, à part à l'initialisation ou si tu as une option genre (de)select all).
    Justement, je voulais toute les cocher PUIS les rendre indisponible, mais c'est clairement voulu...
    l'action relative au checked=true ET l'aspect graphique font sens...

  8. #8
    Membre actif Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Points : 203
    Points
    203
    Par défaut
    invisible ==> disabled ?

  9. #9
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Citation Envoyé par ttone
    Ok, juste pour vérifier que je n'ai pas besoin d'actualiser des méthodes slottées au changement d'état après un setChecked(true ou false)... (tu confirmes?)
    Si tu bloques les connections de chacune des check box, c'est bon, aucun slot ne sera exécuté, si c'est ce que tu voulais dire.

    Citation Envoyé par ttone
    invisible ==> disabled ?
    Je comprends pas la question??

    [hs]Ok, dirac, c'est un synonyme de pulse ou burst en fait? Ou la version française peut-être?[/hs]

  10. #10
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    [HS]
    dirac ce n'est pas juste un terme...
    http://fr.wikipedia.org/wiki/Paul_Dirac
    Mais c'est plutôt à utiliser pour du filtrage ,non?
    [edit]
    ha oui c'est aussi pour de l'echantillonage avec son peigne.
    Sympa comme bonhomme mais un peu singulier
    [/hs]

  11. #11
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Vu le domaine dont ttone parle et les domaines de ce personnage, j'aurais tendance à penser à un faux ami tout de même

  12. #12
    Membre actif Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Points : 203
    Points
    203
    Par défaut
    et bien non Dirac est bien de la temrinologie du traitement du signal, mais bon, à la longue toutes les sciences se structure autour de concepts si proches

    Pour les besoins du formalisme quantique, Dirac a introduit un objet singulier, qu'on appelle aujourd'hui impulsion de Dirac ou masse de Dirac, notée δ(t). Cette impulsion représente un signal de durée théoriquement nulle et d'énergie finie, et doit vérifier la condition : intégrale = 1, durée = 0
    Ca rentre dans les fonctionnements des controleur et donc des boutons :
    ex de dirac : le bouton appeler de ton portable
    ex de toggle : l'interrupteur de ton appart
    ex de trigger : la pédale de frein de ta voiture


    J'osais pas rentrer dans ces détails...

    Mais bon revenons
    invisible ==> disabled
    est ce qu'un QObject invisible est automatiquement disabled ?
    (==> signifie implique)

    Si tu bloques les connections de chacune des check box, c'est bon, aucun slot ne sera exécuté, si c'est ce que tu voulais dire.
    N'étant pas bloqué par défaut (?), je n'ai donc pas besoin, lorsque je décoche en internet, de rappeler la méthode slottée par un décochage utilisateur ?

  13. #13
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    1. merci pour les détails, c'est le genre de truc qui attise ma curiosité

    2. Un widget désactivé est un widget avec lequel l'utilisateur ne peut interagir. Le cacher l'empêche d'interagir. Tu obtiens donc le même effet, mais pas de la même façon. Donc non, ce n'est pas impliqué. Sauf si on parle du résultat auquel cas c'est une équivalence
    Bref, si l'utilisateur n'a pas à interagir avec, faut le désactiver en général, pas cacher.

    3.
    N'étant pas bloqué par défaut (?), je n'ai donc pas besoin, lorsque je décoche en internet, de rappeler la méthode slottée par un décochage utilisateur ?
    Je comprends toujours pas
    Je me demande si tu te prends pas la tête que tu t'embrouilles pour rien là

    a. Tu veux bloquer les signaux? Ok, mais n'oublie pas de les réactiver après.
    b. Tu ne veux pas les bloquer? Y'a rien à toucher.

  14. #14
    Membre actif Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Points : 203
    Points
    203
    Par défaut
    c'est simple ce que je veux dire...

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    connect(maCheckBox, SIGNAL(clicked()), this, SLOT(action()));
     
    maCheckBox->setChecked(!maCheckBox->isChecked());
    la 2eme ligne va-t-elle exécuter action() ?

  15. #15
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Salut.
    Pourquoi elle le ferait?

  16. #16
    Membre actif Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Points : 203
    Points
    203
    Par défaut
    Par changement d'état ?
    .. hum
    Je me prends la tete pour rien en fait.

  17. #17
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Oui, action sera exécuté.

    Edit: euh non pardon. Je me suis emmêlé avec le signal stateChanged. Donc clicked() ne sera pas émis non.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/09/2013, 13h40
  2. [Débutant] gérer la visibilité des boutons par interface graphique
    Par Adem84 dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 10/02/2010, 11h45
  3. comment gérer la visibilité d'un champ de texte ?
    Par MAJIK_ENIS dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/05/2006, 15h42
  4. Réponses: 2
    Dernier message: 13/10/2004, 15h32

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