Perl/TK, tableau et largeur des colonnes

Le
genomart
Bonjour,

Je sais pas si ça existe, mais je n'ai jamais trouvé de modules Perl
Tk permettant de créer facilement un tableau (comme un classeur) avec
une particularité.
En fait, je constate qu'en Perl Tk, on ne peut pas modifier la largeur
d'une colonne ou la hauteur d'une cellule avec la souris, comme sous
excel par exemple.
Sous dotnet, il est assez facile de concevoir un classeur dont les
dimensions peuvent changer avec un glissé souris.
D'ailleurs, c'est idem avec les Frames. Une fois crée, il est
impossible de modifier leurs largeur et hauteur.

Savez vous s'il existe déjà des modules dédiés. Est ce simple de
mettre cela en place à coup de bind ou je ne sais quoi.

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Paul Gaborit
Le #18829181
À (at) Thu, 5 Mar 2009 03:31:15 -0800 (PST),
écrivait (wrote):
Je sais pas si ça existe, mais je n'ai jamais trouvé de modules Perl
Tk permettant de créer facilement un tableau (comme un classeur) avec
une particularité.
En fait, je constate qu'en Perl Tk, on ne peut pas modifier la largeur
d'une colonne ou la hauteur d'une cellule avec la souris, comme sous
excel par exemple.
Sous dotnet, il est assez facile de concevoir un classeur dont les
dimensions peuvent changer avec un glissé souris.



Pour les tables, je n'ai jamais testé. C'est sûrement faisable mais il
n'y peut-être pas de code tout prêt. Ça risque d'être un gros boulot
pour le faire proprement.

Par contre, ça existe pour les listes ou les arbres avec déplacement
des colonnes et gestion de leur largeur : si mes souvenirs sont bons,
c'est dans Tk:TList et Tk::HList.

D'ailleurs, c'est idem avec les Frames. Une fois crée, il est
impossible de modifier leurs largeur et hauteur.



Ça, ce n'est pas vrai du tout. Dans Perl/Tk (et dans Tk en géneral),
il y a plusieurs algorithmes de gestion géométrique qui permettent de
repondre à 90% des besoins (voir par exemple Tk::pack ou Tk::place et
plus généralement toutes les documentations référencées sour le titre
"Tk Geometry Management" dans la doc de Tk) et pour les besoins plus
pointus, il y a tous les callbacks nécessaires pour faire ce qu'on
veut.

--
Paul Gaborit - Perl en français -
genomart
Le #18829171
> Pour les tables, je n'ai jamais testé. C'est sûrement faisable mais i l
n'y peut-être pas de code tout prêt. Ça risque d'être un gros bou lot
pour le faire proprement.

Par contre, ça existe pour les listes ou les arbres avec déplacement
des colonnes et gestion de leur largeur : si mes souvenirs sont bons,
c'est dans Tk:TList et Tk::HList.


J'vais déjà testé ces modules pour faire un affichage tablé, mais u ne
fois le tout représenté, je ne vois pas comment on peut faire pour
faire agrandir les colonnes en glissant la bordure d'une colonne par
exemple.

> D'ailleurs, c'est idem avec les Frames. Une fois crée, il est
> impossible de modifier leurs largeur et hauteur.

Ça, ce n'est pas vrai du tout. Dans Perl/Tk (et dans Tk en géneral),
il y a plusieurs algorithmes de gestion géométrique qui permettent de
repondre à 90% des besoins (voir par exemple Tk::pack ou Tk::place et
plus généralement toutes les documentations référencées sour le titre
"Tk Geometry Management" dans la doc de Tk) et pour les besoins plus
pointus, il y a tous les callbacks nécessaires pour faire ce qu'on
veut.


Je sais que Tk::form Tk::grid Tk::place et Tk::Pack permettent un très
bon placement des éléments dans un widget, une fenêtre, mais une fois
que tout est placé, je n'ai pas vu de méthodes permettant d'augmenter
par exemple la largeur d'un frame via la souris. On est obligé
d'utiliser la méthode configure, ou bien d'augmenter la fentre (si on
a mis l'option -fill x -expand 1 dans le frame).
A moins que vous ayez un exemple à me proposer.

Merci
--
Paul Gaborit - Perl en français -

Paul Gaborit
Le #18829421
À (at) Thu, 5 Mar 2009 06:01:49 -0800 (PST),
écrivait (wrote):
Pour les tables, je n'ai jamais testé. C'est sûrement faisable mais il
n'y peut-être pas de code tout prêt. Ça risque d'être un gros boulot
pour le faire proprement.

Par contre, ça existe pour les listes ou les arbres avec déplacement
des colonnes et gestion de leur largeur : si mes souvenirs sont bons,
c'est dans Tk:TList et Tk::HList.


J'vais déjà testé ces modules pour faire un affichage tablé, mais une
fois le tout représenté, je ne vois pas comment on peut faire pour
faire agrandir les colonnes en glissant la bordure d'une colonne par
exemple.



J'ai souvenir de l'avoir fait. Mais je ne sais plus si c'était intégré
ou si je l'avais programmé... Je vais rechercher dans mes exemples de
codes pour voir si je retrouve quelque chose à ce sujet mais, comme un
jour de grand ménage, j'en ai effacé une bonne partie, je ne vous
garantis rien.

Je sais que Tk::form Tk::grid Tk::place et Tk::Pack permettent un très
bon placement des éléments dans un widget, une fenêtre, mais une fois
que tout est placé, je n'ai pas vu de méthodes permettant d'augmenter
par exemple la largeur d'un frame via la souris. On est obligé
d'utiliser la méthode configure, ou bien d'augmenter la fentre (si on
a mis l'option -fill x -expand 1 dans le frame).
A moins que vous ayez un exemple à me proposer.



Je ne comprends pas comment vous voulez modifier la taille d'un frame
'à la souris'... À moins que Tk::Adjuster soit la solution.

--
Paul Gaborit - Perl en français -
genomart
Le #18829531
On 5 mar, 15:18, Paul Gaborit
À (at) Thu, 5 Mar 2009 06:01:49 -0800 (PST),
écrivait (wrote):

>> Pour les tables, je n'ai jamais testé. C'est sûrement faisable mai s il
>> n'y peut-être pas de code tout prêt. Ça risque d'être un gros boulot
>> pour le faire proprement.

>> Par contre, ça existe pour les listes ou les arbres avec déplaceme nt
>> des colonnes et gestion de leur largeur : si mes souvenirs sont bons,
>> c'est dans Tk:TList et Tk::HList.
> J'vais déjà testé ces modules pour faire un affichage tablé, ma is une
> fois le tout représenté, je ne vois pas comment on peut faire pour
> faire agrandir les colonnes en glissant la bordure d'une colonne par
> exemple.

J'ai souvenir de l'avoir fait. Mais je ne sais plus si c'était intégr é
ou si je l'avais programmé... Je vais rechercher dans mes exemples de
codes pour voir si je retrouve quelque chose à ce sujet mais, comme un
jour de grand ménage, j'en ai effacé une bonne partie, je ne vous
garantis rien.

> Je sais que Tk::form Tk::grid Tk::place et Tk::Pack permettent un trè s
> bon placement des éléments dans un widget, une fenêtre, mais une fois
> que tout est placé, je n'ai pas vu de méthodes permettant d'augment er
> par exemple la largeur d'un frame via la souris. On est obligé
> d'utiliser la méthode configure, ou bien d'augmenter la fentre (si on
> a mis l'option -fill x -expand 1 dans le frame).
> A moins que vous ayez un exemple à me proposer.

Je ne comprends pas comment vous voulez modifier la taille d'un frame
'à la souris'... À moins que Tk::Adjuster soit la solution.

--
Paul Gaborit - Perl en français -


C'est exactement ce que je cherchais, bien vu pour le module
Tk::Adjuster que je ne connaissais pas.
En testant l'exemple de la doc
use Tk;
use Tk::Adjuster;

my $f = MainWindow->new;
my $lst1 = $f->Listbox();
my $adj1 = $f->Adjuster();
my $lst2 = $f->Listbox();

my $side = 'left';
$lst1->pack(-side => $side, -fill => 'both', -expand => 1);
$adj1->packAfter($lst1, -side => $side);
$lst2->pack(-side => $side, -fill => 'both', -expand => 1);
MainLoop;

On remarque qu'on peux "ajuster" avec la souris la taille de la liste.
C'est ce principe que je cherchais pour l'appliquer à un frame ou
canvas, etc.
Vos futurs exemples sont les bienvenus.

Merci
genomart
Le #18829711
Il ne reste plus qu'à voir s'il y a un moyen d'appliquer ce principe
sur une table, un tableur.
Mais bon, faut déjà tester tous ces modules : Tk::Columns,
Tk::MListbox, Tk::Table, Tk::GridColumns, TableMatrix. Et sinon peut
être envisager de créer un module Tk pour la communauté :-)
Paul Gaborit
Le #18830231
À (at) Thu, 5 Mar 2009 06:42:24 -0800 (PST),
écrivait (wrote):
Vos futurs exemples sont les bienvenus.



Concernant les largeurs de colonnes, je n'a malheureusement rien
retrouvé. Il y a peut-être un faible espoir que j'ai gardé cela chez
moi mais je ne le saurais que ce soir...

--
Paul Gaborit - Perl en français -
genomart
Le #18830501
On 5 mar, 16:42, Paul Gaborit
À (at) Thu, 5 Mar 2009 06:42:24 -0800 (PST),
écrivait (wrote):

> Vos futurs exemples sont les bienvenus.

Concernant les largeurs de colonnes, je n'a malheureusement rien
retrouvé. Il y a peut-être un faible espoir que j'ai gardé cela che z
moi mais je ne le saurais que ce soir...

--
Paul Gaborit - Perl en français -


Ce n'est pas urgent. Merci pour vos réponses qui sont déjà rapides et
efficaces.
Publicité
Poster une réponse
Anonyme