-
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.
-
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
-
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.
-
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é
-
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.