Tk::DirTree - Verzeichnisbaum visualisieren

Das Modul Tk::DirTree kann zur Darstellung von Verzeichnissen im Dateisystem verwendet werden. Mit der Option -browsecmd kann ein Perl-Code definiert werden, der ausgeführt wird, wenn ein Nutzer auf einen Eintrag im Verzeichnisbaum klickt. Mit -command kann die Auswahl eines Elements belegt werden (z.B. durch Doppelklick oder Enter).


Beispiel

#!perl

=comment

Verzeichnisinhalt mit DirTree darstellen.
Basiert auf: http://www.ibm.com/developerworks/aix/library/au-perltkmodule3/

=cut

use strict;
use warnings;
use utf8; # Deutsche Umlaute richtig darstellen
use Tk;
use Tk::DirTree;
use Cwd;

my $mw = MainWindow->new;
$mw->geometry("300x400");
$mw->title("DirTree Example");

my $working_dir = Cwd::cwd();

my $dir_tree = $mw->Scrolled('DirTree',
	-scrollbars => "osoe",
	-width => 30,
	-height => 25,
	-exportselection => 1,
	-browsecmd => sub {$working_dir = shift},
	-command   => \&show_cwd
)->pack(-fill => "both", -expand => 1);

$dir_tree->chdir($working_dir);

my $selection_info_frame = $mw->Frame()->pack(-fill => 'x');
$selection_info_frame->Label(
	-text => 'Ausgewählt: ',
)->pack(-side => 'left');
my $selected_dir_label = $selection_info_frame->Label(
	-textvariable => \$working_dir,
)->pack;

my $button_frame = $mw->Frame()->pack(-side => "bottom");
$button_frame->Button(
	-text => "Ok",
	-command => \&show_cwd,
)->pack(-side => "left");

$button_frame->Button(
	-text => "Exit",
	-command => sub{exit},
)->pack(-side => "left");

sub show_cwd {
  $mw->messageBox(-message => "Directory Selected: $working_dir", -type => "ok");
}

$mw->MainLoop;
exit(0);
Top