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 et tablewidget


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Par défaut qt4 et tablewidget
    Voila,
    J'ai un programme sous QT4 qui contient une Qtablewidget
    Dans cette table je peux modifier certaines cellules
    J'ai un bouton OK pour valider ... Ce bouton est grisé

    Quand je saisis une donnée, je ne recois le signal de changement que lorsque je sors de la cellule.
    Je degrise donc le bouton OK qu'a ce signal.
    Seulement si je saisis et que je veux valider avec ma souris mon bouton reste grisé si je fais pas enter ou que je clique pas ailleurs

    JE sais qu'en fait la zone de saisie d'une table n'est pas le sous element mais par defaut un qlineedit.
    Peut-on recevoir le signal de changement à chaque caractere frappé?

    Aidez moi merci.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Par défaut Pas de reponse
    L'absence de reponse me conforte dans l'idee que QT est anecdotique en france
    C'est une bibliotheque enorme
    Je suis pas specialiste c++
    Un programme sans table pour la visu et la saisie des fichiers avec peu de colonne cela me parait être bizarre des l'instant ou on manipule ce type d'infos.
    De meme sur ce type de saisie , il est courant de griser les boutons de validation et d'anulation et de les degriser des qu'une zone est modifiee par la frappe d'un simple caractere.

    Helas avec QT4 je n'arrive pas simplement a ce resultat elementaire.
    Certes les progres realises depuis QT3 en terme d'affichage des tables sont desormais suffisants,mais ma demande me semble elementaire. Je ne desire pas plonger au fond de QT pour trouver une solution. Ce genre de chose doit être livree sur un plateau
    Pourrait il y avoir une ame genereuse qui fasse un petit prog avec table en saisie pour confirmer que je ne gatouille pas.

    Bye bye

  3. #3
    Membre chevronné

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Par défaut
    Concernant l'absence de réponse, je pense que c'est surtout dû au fait que le forum principal de Qt se trouve dans la partie C/C++. Personnellement je n'ai découvert que récemment ce forum ci et il me semble bien moins actif.

    Pour ton problème je suis d'accord qu'il ne semble pas y avoir de signal indiquant le début d'édition d'une cellule. A mon avis le mieux serait de passer par un QTableView avec ton propre model adapté. Je me trompe peut-être vu que je n'utilise pas couramment les model/view, mais je pense que d'autre pourront mieux t'aider sur l'autre forum.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Par défaut merci
    Merci de ton attention.

    Je vais aller , "perturber" l'autre salon des que je l'aurai trouvé.
    Qtableview ... J'ai vu, je n'y ai pas prete attention car pour moi c'est une extension d'affichage... Je vais y regarder

    Le pb du c++ c'est qu'il necessite une connaissance importatnte des objets utilisés si on desire les surcharger. Je reconnais que sincerement avoir une connaissance exhaustive d'un "Langage" (ici QT) ne m'interesse pas.
    Les diffuseurs d'objets ont fait un travail considerable, mais le commun des programmeurs desirent utilser l'objet standard.
    Si notre attention est focalisee sur QT et que demain pour diverses raisons on desire passer chez "Chmoldu" , on se retrouve en slip.
    Dans ce domaine , je dois dire que par exemple si on utilise les "API Windows" on obtient une certaine continuité. Chez Linux , on doit faire des choix, partant du C, les principaux sont GTK (est ce le bon nom?) ou QT.
    J'ai choisi QT pour le deigner, dans lequel on pouvait connecter nos actions...
    Cela parait bien peu de chose, mais cela m'evite de me poser la question du nom que j'ai donné a un bouton , des zones .., de configurer polices, tailles...ds mon prog.C'est un confort de paresseux.
    Cela dit je ne nie pas qu'une fois habitue au copier coller ds un source , on obtient pas le m confort mais au debut.

    Autre chose, je suis plutot surpris de certains signaux.
    y'a le itemchanged() ...tres bien

    Mais y'a pas que celui ci.
    Je fais une courbe , fond vert... plein de jolies courbes.
    Je fais ca sur une boite de dialogue, j'agrandis , je deplace, je recouvre ma fenetre....
    Un gentil signal m'indique redessine...
    Je fais ca sur la fenetre principale , adieu mon beau signal dans bien des cas !!!
    Je trouve ca louche. Si un type me dit .. "Ah oui ...faut pas faire ca..." Je lui reponds "je veux dessiner des courbes pas connaitre les astuces d'un langage"

    Chez Windows , les signaux sont dans le noyau de l'interface graphique, chez linux une bonne partie est integree à l'objet , il me parait clair qu'il est sans doute beaucoup plus difficile de construire un paquet d'objet avec heritage successif et de recreer des signaux specifiques a chaque changement de l'architecture globale du truc (passer de QT3 à QT4)
    En gros , ce que je veux dire , c'est que QT n'envoie pas certains signaux comme je le desirerais non pas par mauvaise volonté, mais que cela pourrait remettre en cause leur architecture.

    Assez parlé

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Par défaut J'ai trouvé
    Bon voila,
    en fait un qtablewidget , on peut y accrocher des qtablewidgetitem .
    Ca c'est bien pour l'affichage individuel et caracterisation de chaque cellule, mais c'est l'element de base.
    On peut aussi y accrocher des QWIDGET, par ex un qlineedit

    J'ai procede comme suit, Je remplis ma table avec des qtablewidgetitem non editable.
    Quand j'entre ds ma cellule je fais un setCellWidget de ma zone vers un qlineedit.
    Un zone d'edition s'ouvre a l'endroit voulu.
    Je recois alors les signaux du qlineedit que j'ai redirige vers des slot de ma fenetre .
    Je le detruis en sortie de cellule.

    Vous noterez que les signaux du qtablewidget sont doublés. 1 pour item(*qtablewidgetitem) et 1 pour cell(lig,col), c'est ca qui m'a aidé, je trouvais cette dualité etrange.
    Pour info, soyez alors attentif à ignorer ces signaux lors du chargement de la table.

    Pour ma part probleme clos
    Merci a ceux qui ont lu.

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

Discussions similaires

  1. [Qt4] Linker error (vtable)
    Par titus55 dans le forum Qt
    Réponses: 7
    Dernier message: 23/05/2007, 10h04
  2. Dev C++ et QT4
    Par Pe04 dans le forum Dev-C++
    Réponses: 9
    Dernier message: 06/03/2006, 09h47
  3. Visual 2005 & Qt4 Opensource
    Par chkpos dans le forum MFC
    Réponses: 3
    Dernier message: 08/02/2006, 18h08
  4. Réponses: 1
    Dernier message: 28/11/2005, 23h20

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