Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
690 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [perl TK] comment on fait un drag n drop

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[perl TK] comment on fait un drag n drop

n°279906
circeedeva​lette
Posté le 06-01-2003 à 10:34:31  profilanswer
 

salut a tous et bonne annee
 
malgre un exemple trouve sur le net  
 

Citation :


sub StartDrag  
{
  my($token) = @_;
  my $w = $token->parent; # $w is the source listbox
  my $e = $w->XEvent;
  my $idx = $w->nearest($e->y); # get the listbox entry under cursor
  if (defined $idx)  
  {
    # Configure the dnd token to show the listbox entry
    $token->configure(-text => $w->get($idx));
    # Show the token
    my($X, $Y) = ($e->X, $e->Y);
    $token->MoveToplevelWindow($X, $Y);
    $token->raise;
    $token->deiconify;
    $token->FindSite($X, $Y, $e);
  }
}
 
# Accept a drop and insert a new item in the destination listbox.
sub Drop  
{
    my($lb, $dnd_source) = @_;
    $lb->insert("end", $dnd_source->cget(-text));
    $lb->see("end" );
}
 
# Define the source for drags.
# Drags are started while pressing the left mouse button and moving the
# mouse. Then the StartDrag callback is executed.
$dnd_token = $Text_input_added->DragDrop
  (-event     => '<B1-Motion>',
   -sitetypes => ['Local'],
   -startcommand => sub { StartDrag($dnd_token) },
  );
# Define the target for drops.
$Text_replace_add->DropSite
  (-droptypes     => ['Local'],
   -dropcommand   => [ \&Drop, $Text_replace_add, $dnd_token ],
  );

 
 
je n'arrive pas a faire un drag n drop entre duex fenetre en perl TK
 
j'avance doucement mais j'ai maintenant un probleme avec l'option "nearest" le debug me dit "Can't locate auto/Tk/Text/nearest.al in @INC"
ca vient d'où ca ?
 
merci de votre aide

mood
Publicité
Posté le 06-01-2003 à 10:34:31  profilanswer
 

n°280019
Aricoh
gentil mais fo po pousser
Posté le 06-01-2003 à 12:35:08  profilanswer
 

circeedevalette a écrit :

le debug me dit "Can't locate auto/Tk/Text/nearest.al in @INC"
ca vient d'où ca ?
 
merci de votre aide

d'où ça vient ? Ben du débugger de Perl justement :D, il te dit juste que, dans ton programme il est fait référence à un fichier se trouvant en principe dans auto/Tk/Text et que le dit fichier n'a pas été trouvé dans le répertoire en question
 
Le package Text pour Tk figure-t-il dans ta distribution Perl ? Peut être est-ce un module qui te manque ? Sinon, fais une recherche dans ton dossier Perl pour savoir s'il y a bien un fichier nearest.al planqué quelque part ?


Message édité par Aricoh le 06-01-2003 à 12:37:34

---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
n°280023
Aricoh
gentil mais fo po pousser
Posté le 06-01-2003 à 12:43:51  profilanswer
 

Petits compléments d'infos :
 
- j'utilise Tk aussi avec Perl (Win32) mais j'ai pas trouvé de fichier nearest.al dans ma distrib
 
- en zieutant sur les modules PPM de Perl (http://www.activestate.com/PPMPack [...] ilds-only/), j'ai trouvé les modules suivants :
  - Tk-TextANSIColor.zip
  - Tk-Text-SuperText.zip
 
J'ignore si le fichier se trouverait dans l'un de ces packages, mais vu que le débugger cite un dossier Tk/Text ...


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
n°280026
circeedeva​lette
Posté le 06-01-2003 à 12:55:45  profilanswer
 

Aricoh a écrit :

Petits compléments d'infos :
 
- j'utilise Tk aussi avec Perl (Win32) mais j'ai pas trouvé de fichier nearest.al dans ma distrib
 
- en zieutant sur les modules PPM de Perl (http://www.activestate.com/PPMPack [...] ilds-only/), j'ai trouvé les modules suivants :
  - Tk-TextANSIColor.zip
  - Tk-Text-SuperText.zip
 
J'ignore si le fichier se trouverait dans l'un de ces packages, mais vu que le débugger cite un dossier Tk/Text ...


 
en fait, ma question est mal posée.
 
j'avais mal adaptee mon exemple qui marche sur des "scrolled" avec mes "Text" d'où le probleme de nearest.al
 
mais j'essai toujours de mettre en place ce fichu drag n drop
 

n°280027
Aricoh
gentil mais fo po pousser
Posté le 06-01-2003 à 12:57:24  profilanswer
 

arf ! ben sinon, je peux pas te dire, je savais même pas qu'on pouvait faire du drag'n drop avec Tk  :heink:


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
n°280030
circeedeva​lette
Posté le 06-01-2003 à 13:07:54  profilanswer
 

Aricoh a écrit :

arf ! ben sinon, je peux pas te dire, je savais même pas qu'on pouvait faire du drag'n drop avec Tk  :heink:  


 
essaye ca alors
 
 

Citation :


#!perl -w
 
use Tk;
use Tk::DragDrop;
use Tk::DropSite;
use strict;
use vars qw($top $f $lb_src $lb_dest $dnd_token);
 
$top = new MainWindow;
 
$top->Label(-text => "Drag items from the left listbox to the right one"
     )->pack;
$f = $top->Frame->pack;
$lb_src  = $f->Scrolled('Listbox', -scrollbars => "oe", -background => 'white',-width =>47,-height => 10)
  ->pack(-side => "left" );
$lb_dest = $f->Scrolled('Listbox', -scrollbars => "oe", -background => 'white',-width =>47,-height => 10)
  ->pack(-side => "left" );
 
$lb_src->insert("end", sort keys %ENV);
 
# Define the source for drags.
# Drags are started while pressing the left mouse button and moving the
# mouse. Then the StartDrag callback is executed.
$dnd_token = $lb_src->DragDrop
  (-event     => '<B1-Motion>',
   -sitetypes => ['Local'],
   -startcommand => sub { StartDrag($dnd_token) },
  );
# Define the target for drops.
$lb_dest->DropSite
  (-droptypes     => ['Local'],
   -dropcommand   => [ \&Drop, $lb_dest, $dnd_token ],
  );
 
MainLoop;
 
sub StartDrag  
{
  my($token) = @_;
  my $w = $token->parent; # $w is the source listbox
  my $e = $w->XEvent;
  my $idx = $w->nearest($e->y); # get the listbox entry under cursor
  if (defined $idx)  
  {
    # Configure the dnd token to show the listbox entry
    $token->configure(-text => $w->get($idx));
    # Show the token
    my($X, $Y) = ($e->X, $e->Y);
    $token->MoveToplevelWindow($X, $Y);
    $token->raise;
    $token->deiconify;
    $token->FindSite($X, $Y, $e);
  }
}
 
# Accept a drop and insert a new item in the destination listbox.
sub Drop {
    my($lb, $dnd_source) = @_;
    $lb->insert("end", $dnd_source->cget(-text));
    $lb->see("end" );
}
 
__END__

 
 
mais il faut que je l'adapte parce que le "scrolled" y a moins de possibilitée je pense que les "Text"
 
PS : smilley de merde
a la place y :D


Message édité par circeedevalette le 06-01-2003 à 13:09:10
n°280801
Aricoh
gentil mais fo po pousser
Posté le 07-01-2003 à 10:18:26  profilanswer
 

Arf ! La dernière fois que j'ai bossé sur une appli en Perl/Tk, je me suis rendu compte que, sur les 14/15 heures de boulot passées dessus, j'ai dû en bouffer au moins 7 ou 8, rien que pour l'interface graphique.
 
Depuis, je rebosse sur des progs en mode console, ça va nettement plus vite  :D


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
n°283651
circeedeva​lette
Posté le 10-01-2003 à 16:23:44  profilanswer
 

Aricoh a écrit :

Arf ! La dernière fois que j'ai bossé sur une appli en Perl/Tk, je me suis rendu compte que, sur les 14/15 heures de boulot passées dessus, j'ai dû en bouffer au moins 7 ou 8, rien que pour l'interface graphique.
 
Depuis, je rebosse sur des progs en mode console, ça va nettement plus vite  :D  


 
oui mais comme je fais des prog qui ne sont pas pour moi mais pour des clients  
et qu'il y a pas mal de chose a parametrer, c'est pas mal une petite interface grafique, plus ergonomique que la ligne de commande du moins


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [perl TK] comment on fait un drag n drop

 

Sujets relatifs
[ Perl ] - inporter des fonctions C++[PERL]-Interface graphique - Nouveau sujet.
Comment faire un Drag&Drop vers Windows ?[Perl] utilisez un fichier de configuration
[Perl] variable de variable comme en PHP[ PERL ] Fonction pour ouvrir un fichier html
Perl sous Windows[Perl][Resolu] Comment connaitre le nom du proprietaire d'un fichier
Les Thread en Perl sous FreeBSD[Perl] Y a-t-il un dieu des expressions régulières dans la salle?
Plus de sujets relatifs à : [perl TK] comment on fait un drag n drop


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR