Perl TK从Windows资源管理器拖放文件夹



All,

我有一个我正在开发的 win32 perl TK 应用程序,为了使用户对此简单,我想将 Windows 资源管理器/桌面中的文件夹的 N 拖放功能拖放到我的应用程序中的小部件(例如文本框等)上。

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

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

杰里米。

有模块 Tk::D ropSite 应该适合你。

可以在此处找到示例代码: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

最新更新