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 :

[Qt4] Bug bizarre avec QTableWidget


Sujet :

Qt

  1. #1
    Expert confirmé
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Par défaut [Qt4] Bug bizarre avec QTableWidget
    bonjour
    j'ai développé un programme qui utilise un QTableWidget. sur mon poste de développement (nommé A), j'ai qt 4.2.2-2 (sous debian lenny) et je n'ai aucun problème avec mon programme.
    sur un autre poste (nommé B) sous debian etch qui a qt 4.2.1-2+b1 (sous debian etch pas à jour), j'ai un bug bizarre en prenant l'éxécutable compilé sur A.

    sur B, lorsque je clique la première fois sur une case de mon QTableWidget, le QTableWidget monte d'une ligne et y reste et après, le comportement est normal (tout en conservant le décalage). est-ce que ce léger changement de version est la cause de mon problème ? y a-t-il un moyen de palier à cela ?
    s'il n'y a pas de solution directe, à quelle version de qt je devrais remonter pour que ça marche dans les versions plus récentes ? la 4.2.0 ?

    je suis en train de mettre à jour B pour voir si ça vient de là mais ça reste un problème quand même : c'est un projet info pour les cours donc à rendre et c'est pas dit que le prof aie au moins la même version que moi à part lui imposer de mettre à jour, je vois pas trop comment faire

    si vous avez des idées pour solutionner cela, je suis preneur


    en pièce jointe : à gauche quand c'est normal, à droite c'est après le premier clic dans une case

    edit : la mise à jour en qt 4.2.2 sur B n'a rien changé

  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
    Par défaut
    Salut,

    Là comme ça, je vois pas trop ce qui peut foirer, surtout si tu as la même version des 2 côtés maintenant :/
    Y'aurait moyen d'avoir d'un code reproduisant le problème pour y jeter un coup d'oeil (même par MP; si c'est un projet pour la classe, t'as peut-être pas envie que tout le monde le voie )? As-tu réussi à isoler le problème au code minimal ou aux instructions concernées?

  3. #3
    Expert confirmé
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Par défaut
    je dois faire un puissance 5. il y a tellement de puissance 4 qui trainent sur le net, c'est pas mon boulot (loin d'être fini et propre) qui va être une référence, surtout s'il est buggé


    j'ai mis en pièce jointe une archive d'un morceau de mon projet (je n'ai pas mis la partie serveur qui a le même bug). le ui est généré avec designer. le code est sans doute loin d'être super : je suis pas un expert en qt

    j'ai essayé de retourner le problème dans tous les sens mais je vois vraiment pas d'où ça peut venir. pour info, je modifie les propriétés de la grille dans src/interface.cpp:58, ça peut venir de là mais pourquoi je sais pas

    de m'aider

    ps : mon code n'est pas encore commenté : je le fais toujours à la fin quand tout marche

  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
    Par défaut
    Première "réponse": chez moi ça ne plante pas. As-tu bien fait "make distclean && qmake && make" après le passage à Qt4.2.2 sur B? Histoire d'être sûr que l'erreur vient de la machine/config et pas du code?

    Je vais commencer à lire ton code, au cas où je trouve quelque chose qui m'interpelle.


    Edit:
    Mince, j'ai oublié le coup où tu files le binaire. Tu peux voir ce que ça donne avec les sources ou c'est pas possible? Ton prof veut absolument un binaire?

  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
    Par défaut
    Désolé, je vois pas ce qui peut foirer, tu n'y fais pas de manip "hasardeuses" (enfin, pas que je vois :/)

  6. #6
    Expert confirmé
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Par défaut
    la recompilation sur B n'a rien changé
    vu que B n'a pas le même thème graphique que A, je me suis dit que ça aurait pu venir de là mais le changement de thème n'a rien changé au problème.
    cependant, j'ai isolé avec un peu plus de précision le problème. ce n'est pas nécessairement au premier clic que la grille remonte : si je clique ailleurs que dans la ligne tout en bas, ça marche mais dès que je clique sur une case de la ligne du bas, la grille a peur et remonte

    la version du compilateur est la même sur les deux pc à savoir g++-4.1.1

    qu'est-ce qui pourrait différer entre les deux machines et poser problème comme ça ? j'ai du mal à voir là et si ça marche de ton côté, je crois qu'on a un cas isolé sur B mais si par malchance mon prof a une machine qui pose ce problème, ça risque de pas trop lui plaire. je dois fournir binaire et sources une fois le projet fini

  7. #7
    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
    Par défaut
    Bon, alors je vais faire une proposition à tatons, au cas où

    Vu que dans interface::configurationGrille() tu crées déjà les items, essaies voir ce que ça donne si tu ne les recrées/assignes pas dans interface::joueurAClique, mais si tu utilises ceux précédemment créés:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    QTableWidgetItem *item = puissance5Grid->item(row, col);
    if(!item)
        item = new QTableWidgetItem("");
    item->setBackground(QBrush(QColor(255,vert,0, 255))); //changement du fond
    item->setFlags(item->flags() & (~Qt::ItemIsEnabled));
     
    puissance5Grid->setItem(row, col, item);
    (PS: sans aucun rapport, mais tant qu'à y être, la modification de vert peut se faire de façon plus "esthétique", bien que le résultat soit le même:
    vert = (joueurCourant==1 ? 240 : 0);

  8. #8
    Expert confirmé
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Par défaut
    j'ai modifié le code mais sans succès
    je vais essayer de voir quelles sont les fonctions appelées lorsque la grille monte. ça va peut être me donner des indices

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Par défaut
    Bonjours tout le monde,
    Alors Michaël, j'ai compilé ton code, ça c'est bien passé.
    Je lance l'appli, je commence à jouer et effectivement, lorsque je clique n'importe où sur la ligne du bas, la grille remonte d'une ligne
    Par hasard, j'ai découvert que si l'on cliquait sur un des n° des colonnes, cela fesait redescendre la grille.
    Si jamais ça peut t'aider

    Edit : Quand on clique sur la derniere ligne, il ne le comptabilise pas comme un coup.

    Edit2 : En fait, d'après moi ce bug vien de la taille du tableau car lorsque l'on affiche les N° de ligne du tableau et que l'on diminue la taille de la ligne N°10 (la derniere) le bug disparait, mais si on l'agrandi, le bug est toujours présent.

    P.S : tu peut être essayer de laisser affiché les N° des lignes, pour voir comment elles régissent à ce décalage

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Par défaut
    Hé hé, j'avais réson, celà vien bien de la taille du tableau
    Lors de l'initialisation du tableau, je l'ai réduite de 1 (je l'ai fais passer de 32 à 31) et je n'ai plus le bug .
    à vérifier sur d'autres ordis.

  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
    Par défaut
    Je comprends pas, mais bien vu

  12. #12
    Expert confirmé
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Par défaut
    ça marche sur B
    donc en fait le problème vient bien de la dimension verticale de mon QTableWidget. s'il est pile de la dimension de toutes les lignes plus l'entête : le bug se produit. si on redimmensionne le qtablewidget pour lui ajouter un ou deux pixels en hauteur, le bug disparait sur B et ça change très peu sur A : on a une ligne de pixels blanc de hauteur un ou deux pixels, c'est pas trop grave. c'est même largement moins grave que le problème précédent
    pourquoi ce comportement différent selon l'installation ? je sais toujours pas

    merci beaucoup Person ne et IrmatDen de m'avoir aidé

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Par défaut
    Ya pas de quoi heureux d'avoir pu te rendre service

    P.S : j'ai eu de la chance d'avoir une machine sur lequel ça buguait sinon j'aurai pas trouvé :p

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

Discussions similaires

  1. Bug bizarre avec jquery
    Par erehcab dans le forum jQuery
    Réponses: 7
    Dernier message: 22/04/2009, 22h28
  2. [CSS] Bug IE avec height ne marche pas avec les %
    Par El Riiico dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 23/06/2005, 17h11
  3. Réponses: 2
    Dernier message: 01/07/2004, 11h05
  4. problèmes bizarres avec jdbc
    Par jaimepasteevy dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 12/12/2003, 12h00
  5. Bug Xerces2_1_0 avec C++ et Linux ??
    Par _marie_ dans le forum XML
    Réponses: 2
    Dernier message: 24/09/2003, 07h49

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