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 :

setCursor & un disabled Widget


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2007
    Messages : 267
    Par défaut setCursor & un disabled Widget
    Salut !
    J'aimerais affecter un curseur lorsqu'un widget est désactivé :


    <code>
    QPushButton *mywidget= new QPushButton();
    mywidget -> setEnabled(false);
    mywidget -> setCursor(Qt::ForbiddenCursor);
    </code>

    Ca ne marche pas (que je mette le setCursor avant ou pas, mais ca ne devrait pas être le problème vu qu'on doit pouvoir changer des propriétés des widget quand on veut pour des cas simple comme ca).

    Qt le permet ou pas?

  2. #2
    Membre expérimenté Avatar de MacPro
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Par défaut
    Salut, je viens de tester sur un programme à moi et ça fonctionne (du moins, au survol du widget concerné).
    ça ne fonctionne pas par contre si le widget est disabled (jusque là, rien de nouveau, mais au moins ça réagit partout pareil).
    Il faudrait ptêtre modifier le mouseMoveEvent de ta fiche qui contient le bouton pour détécter la position du curseur, et s'il est sur le bouton désactivé, alors changer le curseur.

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2007
    Messages : 267
    Par défaut
    désolé de te reprendre mais : donc en gros ca fonctionne pas ?!
    c'est pas normal ! et si je veux avoir un curseur different que le bouton soit disable ou pas (parce qu'il est toujour visible le bouton, donc toujour "survolable")

    moi je considère ca comme un défaut de Qt, enfin bon.

    sinon, passer par un mouseMoveEvent ca alourdi pour rien dans le cas de mon logiciel alors je laisse tomber.

    mais je maintient : je devrai pour affecter un curseur au survol d'un objet tant qu'il est visible !

    y'en a beaucoup des propriétés inutilisable quand un bouton est disabled ?

  4. #4
    Membre expérimenté Avatar de MacPro
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Par défaut
    Je viens de faire un test en contournant ce que tu veux faire avec des feuilles de style (en testant :disabled:hover) mais c'est kif kif.

    Dernière solution (un peu crado !) :

    Tu mets ton bouton dans un widget et ce même widget layoute le bouton. tu regles les marges du layout à 0 et la taille du widget à celle du bouton.
    Puis, lorsque ton bouton est disabled, tu changes le curseur ... du widget en question ! Certes, ça fait utiliser un widget juste pour modifier un curseur, mais si t'as qu'un ou deux boutons c'est gérable !

  5. #5
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 035
    Par défaut
    AS tu essayé avec un autre style???
    Je pense que c'est plus un problème de charte graphique que de Qt. Ca permet d'avoir une cohérence graphique sur une plateforme (windows, linux, mac ...)

    Un objet que tu met disable est non modifiable est souvent grisé. Ce qui enlève l'interêt du cursor. Tu en connait beaucoup des boutton invalide avec un cursor qui se modifie quand tu passe dessus?

    Aprés rien ne t'empêche de faire un boutton qui réagira comme tu le souhaite.

  6. #6
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2007
    Messages : 267
    Par défaut
    bin pour moi ca me parait plausible le fait que quand tu passe sur un bouton disable, tu es le curseur qui devient "forbidden", pour bien montrer que tu ne dois/et peut pas appuyer dessus (tant qu'un autre travail ne soit fait). Enfin bon, si faut faire tout un schimblic pour contourner la chartre graphique, autant laisser tomber.

    mais je vais peut-etre adopter ta méthode Kestufou.
    merci,

    RESOLU :
    problème plutôt résolu, en adoptant la méthode expliqué par Kestufou voir le 2eme message en dessous,
    NOTE :
    ne semble pas faire partie de la chartre graphique (voir message en dessous)

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 035
    Par défaut
    En faite,
    ce n'est pas un problème de style.

    http://qt.developpez.com/doc/latest/...l#enabled-prop
    An enabled widget handles keyboard and mouse events; a disabled widget does not.
    Donc si il ne récupère pas les évènements, il ne peut savoir qu'il doit changer le cursor.
    La solution de kestufou est s'en doute la meilleur.

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

Discussions similaires

  1. Enabler ou disabler plusieurs widget avec UiBinder
    Par lasrevinu dans le forum GWT et Vaadin
    Réponses: 3
    Dernier message: 18/07/2011, 14h31
  2. Enabler ou disabler plusieurs widget avec UiBinder
    Par lasrevinu dans le forum GWT et Vaadin
    Réponses: 0
    Dernier message: 11/07/2011, 17h09
  3. Couleur d'une JComboBox disabled
    Par ced dans le forum Composants
    Réponses: 6
    Dernier message: 06/01/2004, 15h33
  4. [SWT]Eclipse Java : swt.widgets.Table
    Par watson dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 01/10/2003, 09h07

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