Bonjour,
J'essaie de m'attaquer à un problème depuis plusieurs jours mais je ne pense pas avoir la bonne méthode et je n'ai pas vraiment d'expérience en interface graphique.
Mon problème : Je récupère des textos d'une base de données, et je voudrais les afficher selon le schéma classique que l'on retrouve dans nos smartphones :
Toutes les données sont stockées dans l'ordre chronologique dans un array (merci encore à Gardyen d'ailleurs pour son aide !).
Dans un premier temps j'ai séparé les messages de l'envoyeur et du receveur dans 2 array : @textSender et @textReceiver.
Pour le moment je n'ai pas essayé de séparer les messages dans des cadres distincts, je les ai juste affichés soit à gauche, soit à droite. Je n'arrive pas à faire une scrollbar commune aux widgets $right_frame et $left_frame. Et je n'arrive pas non plus à justifier ces widgets l'un sur la gauche, l'autre sur la droite.
Pour le moment cela en me permet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 my $main_frame = $mw->Frame()->pack(-side => 'top', -fill => 'x'); my $adj = $mw -> Adjuster(); my $top_frame = $main_frame->Frame(-background => "red")->pack(-side => 'top', -fill => 'x'); my $left_frame = $main_frame->Frame(-background => "SkyBlue1")->pack(-side => 'left', -fill => 'y'); my $right_frame = $main_frame->Frame(-background => "SeaGreen3")->pack(-side => "right"); $top_frame->Label( -text => "Messages", -background => "red")->pack(-side => "top"); $left_frame->Label( -text => join("\n",@textSender), -background => "SkyBlue1", -foreground => "black")->pack(-side => 'top'); $right_frame->Label(-text => join("\n",@textReceiver), -background => "SeaGreen3", -foreground => "black")->pack(-side => 'top'); my $bouton = $mw->Button ( -text =>"Fermer", -command => sub {exit;})->pack; $adj -> packAfter($left_frame, -side => 'left'); MainLoop;
Au vu de mes galères, je pense que pack ne serait pas la bonne méthode à utiliser, le mieux serait un grid peut-être, mais j'ai plus de 800 messages à afficher.
Pourriez-vous me conseiller une méthode ou un exemple qui se rapprocherait de ce que je voudrais réaliser ?
Merci d'avance !









Répondre avec citation
Partager