2014-01-07 179 views
0

所有,perl的TK拖放文件夹从Windows资源管理器

我有一个Win32的Perl TK应用我的工作,并且使这个简单的用户,我想从窗户的文件夹拖N个液滴功能资源管理器/桌面到我的应用程序中的小部件(例如文本框等)。

的原因是为了消除手动目录/文件选择对话框等

一些示例代码,将不胜感激。提前致谢。

杰里米。

+0

在Perl/Tk的源代码分发,DragDrop目录中有一些示例脚本。你能检查这些(如site_test)是否适合你? –

回答

0

有模块Tk :: DropSite应该为你工作。

一个例子代码可以在这里找到:http://www.nntp.perl.org/group/perl.tcltk/2010/02/msg375.html

这是一个工作示例代码:

#!perl 

use strict; 
use Tk; 
use Tk::DropSite; 
use Tk::Pane; 

my $textVariable = "drag here"; 

my $mw = MainWindow->new; 

my $frame = $mw->Frame(
)->pack(-side => 'top', -expand => 1, -fill => 'x'); 

$frame->Label(
    -text => "My Label", 
    -anchor => 'w', 
    -width => 10, 
)->pack(-ipady => 1, -side => 'left'); 

my $entry = $frame->Entry(
    -textvariable => \$textVariable, 
    -width => 40, 
)->pack(-side => 'left'); 

$frame->DropSite(
    -dropcommand => [\&AcceptDrop, $frame], 
    -droptypes => ('Win32'), 
); 

$mw->MainLoop; 


sub AcceptDrop { 
    my ($widget, $selection) = @_; 
    my $filename; 

    $filename = $widget->SelectionGet(
     -selection => $selection, 
     'STRING' 
    ); 
    $textVariable = $filename; 
} # /AcceptDrop 

如果你知道德国,看看这里:http://www.perltk.de/tk_widgets/howto_perl_tk_tkx_comparison.html

相关问题