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 :

QTableWidgetItem grisé

  1. #1
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 413
    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 : 18 413
    Par défaut QTableWidgetItem grisé
    Bonjour,

    J'ai un tableau QTableWidget dans 1 fenêtre.
    Je cliques sur un bouton hors de ce tableau,ce bouton ayant un signal.
    Mon code s’exécute, cependant la cellule sélectionnée est grisée.

    Jusque là ça me parait logique,le fait de cliquer sur mon bouton désélectionnant le tableau. Je n'arrives pas par contre à le dégriser.

    J'ai essayé de reselectionner la cellule via setCurrentCell,j'ai essayé également setDisable(false) sur le QTableWidget.

    Du coup,je ne sais pas comment faire.

    Merci de votre aide.
    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
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Grisée, c'est à dire ? (le style on fait ce qu'on veut, donc...) Perte de focus ? Interaction désactivée carrément ? Une petite capture peut-être sinon.

  3. #3
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 413
    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 : 18 413
    Par défaut détail sur cellule grisée
    J'ai mis une image avant après.

    Le problème se déclenche lors du clic sur le QPushButton.
    J'utilise le signal clicked.

    Si je re-clique sur la cellule,elle redevient normale.Elle est juste déselectionnée.

    Ca me parait logique que le clic sur le bouton déselectionne la cellule, car le clic "sélectionne" le bouton.

    Mais je n'est pas trouvé comment réactiver le bouton. setCurrentCell ne change rien, mais c'est logique le currentCell n'apas bougé.

    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
         item=tableau->currentItem();
         item->setSelected(true);
    aucun résultat.
    Images attachées Images attachées   
    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
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Donc déjà pour employer les bons mots, il n'est pas question de "sélection" mais de "focus".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableau->setFocus(Qt::OtherFocusReason);

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 413
    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 : 18 413
    Par défaut c'est réglé
    C'était effectivement cela.

    J'avais bien compris le principe mais n'avait pas pensé à un setfocus
    quel est la différence avec setseleted car pour moi sélectionner un objet c'est en quelque sorte en prendre le focus.

    setfocus me semble plus générique que setselected.

    Cela dépend t'il des objets utilisés?

    Par ailleurs dans la doc de setfocus il est précisé qu'il s'agit du focus clavier. Pour mon cas concret : perte de "focus'" sur une cellule de qTableWidget lors de l'appui sur un bouton, hors là, je ne m'occupe pas du clavier,aucune saisie faite.

    Du coup pour moi il était plus logique d'aller vers setselected que vers setfocus.

    Je ne sais pas si c'est moi qui "réfléchit mal" ( à savoir je ne suis pas développeur,je fais cela en amateur )

    Du coup quel est la nuance?

    En tout cas merci.
    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

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Ce n'est pas une nuance, le focus est une notion technique qui indique l'élément graphique actif d'une fenêtre, qui reçoit les événements clavier notamment. La sélection est une notion fonctionnelle (tu as une liste, un tableau, etc, tu peux sélectionner/désélectionner un ou plusieurs éléments...).

    Par exemple, pour répondre à ce topic, tu dois donner le focus au champ de texte pour taper dedans. Rien à voir avec la notion de sélection du texte.

    En gros "sélectionner" est mal employé pour parler du focus.

  7. #7
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 413
    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 : 18 413
    Par défaut faux cusse...
    Ce qui m'embrouille sur ce point,c'est qu'il n'est pas question de modification de texte mais juste de re-sélectionner ma cellule après clic sur bouton.A savoir que si je clique sur le menu de mon appli, je ne perds pas mon focus.

    J'ai un comportement différent si j'accède au menu ou si je clique sur mon bouton,je trouve ça étrange

    Du coup,je pense que j'ai compris ce comportement.

    Dans ma fonction appelée par mon bouton j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QModelIndexList liste=tableau->selectionModel()->selectedIndexes();
    Du coup ma sélection change mon focus je pense.

    Si j'ai raison je deviens un peu moins mauvais...
    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

  8. #8
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Re-sélectionner ta cellule ? Mais elle est déjà sélectionnée, c'est pour ça qu'elle est en gris (couleur d'une cellule sélectionnée lorsque le tableau n'a plus le focus).

    Que tu aies un comportement différent entre le bouton et le menu, cela vient sûrement du "Focus policy", autrement dit le menu ne prend pas le focus au clic, contrairement au bouton (Qt::ClickFocus). Tu peux changer le focus policy du bouton ( setFocusPolicy(Qt::TabFocus) ) et voir ce qu'il se passe.

    Rien à voir avec la fonction de ton bouton, où tu ne fais rien d'autre que lire des données dans le modèle du tableau...

  9. #9
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 413
    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 : 18 413
    Par défaut ok c'est compris
    ok, j'ai compris.

    Il y une "focus policy" différente par défaut pour mon bouton et mon menu.

    Ca ne me vas.C'est clair

    Et c'est bien de savoir que je peux la changer. Il y en a des options, je suis au sommet de l'iceberg là. C"est vraiment complet.
    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

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

Discussions similaires

  1. [JDesktopPane] Bureau tout gris
    Par Magguy dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 08/10/2004, 12h20
  2. [JCheckbox] JCheckBox inactif mais pas grisé ?
    Par anthony79 dans le forum Composants
    Réponses: 3
    Dernier message: 09/09/2004, 14h20
  3. Image en niveau de gris
    Par SteelBox dans le forum C++Builder
    Réponses: 3
    Dernier message: 13/10/2003, 18h04
  4. conversion bmp en niveau de gris
    Par hholivier dans le forum C++Builder
    Réponses: 6
    Dernier message: 19/06/2003, 14h34
  5. niveau de gris en niveau de couleur
    Par corey_jx dans le forum MFC
    Réponses: 2
    Dernier message: 11/06/2003, 23h36

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