Schrift
[thread]5226[/thread]

Dateiauswahl: Mit Hilfe Tk eine Datei auswählen

Leser: 1


<< >> 10 Einträge, 1 Seite
Schreiberling
 2006-08-07 14:00
#45759 #45759
User since
2006-08-07
11 Artikel
BenutzerIn
[default_avatar]
Schreibe ein Programm zum laden und speichern von Daten, es solle eine Grafischer Oberfläche besitzen.
Das speichern funktioniert auch schon.
Nur das Laden macht Probleme. Möchte mit Hilfe eines extrafensters die Datei die geladen werden soll auswählen (also Pfad und Dateiname) und weiterverarbeiten.
Habe bisher leider nur ein Fenster zusammenbekommen das den Pfad herausbekommt, es soll aber die einzelnen Dateien auch anzeigen und auswählbar machen.

Hier mein bissheriger Code:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
       #!/usr/bin/perl -w

use Tk;
use Tk::DirTree;
use Cwd;
use strict;

my $Ladepfad;

my $Datenspeichern = MainWindow->new;
$Datenspeichern->title("Datei laden");

$Ladepfad= Cwd::cwd();

$Datenspeichern->Scrolled('DirTree',
-scrollbars => 'osoe',
-width => 30,
-height => 10,
-selectmode => 'browse',
-exportselection => 1,
-browsecmd => sub { $Ladepfad = shift },

# With this version of -command a double-click will
# select the directory
-command => sub { $ok = 1 },

# With this version of -command a double-click will
# open a directory. Selection is only possible with
# the Ok button.
#-command => sub { $d->opencmd($_[0]) },
)->pack(-fill => "both", -expand => 1);
# Set the initial directory
$d->chdir($Ladepfad);
MainLoop;


Ich bitte um eure Hilfe!
renee
 2006-08-07 14:40
#45760 #45760
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das hier zeigt ein Minimal-Beispiel für den "Datei öffnen"-Dialog:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl

use strict;
use warnings;
use Tk;

my $path;
my $mw = tkinit();
$mw->Entry(-textvariable => \$path)->pack();
$mw->Button(-command => \&search_file, -text => 'Datei wählen')->pack();

MainLoop;

sub search_file{
$path = $mw->getOpenFile();
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Schreiberling
 2006-08-07 15:23
#45761 #45761
User since
2006-08-07
11 Artikel
BenutzerIn
[default_avatar]
Vielen Dank, perfekt das habe ich gesucht!
ptk
 2006-08-08 02:14
#45762 #45762
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Unter "minimal" verstehe ich etwas anderes. Z.B.
Code: (dl )
perl -MTk -e 'warn tkinit->getOpenFile'
:-)
styx-cc
 2006-08-09 21:22
#45763 #45763
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Zu dem getOpenFile(); haette ich mal ne Frage, habe das mit den Filetypes jetzt nen Stuendchen probiert, aber bekomme es nicht hin, das er mir nur Bilder mit den Endungen *.gif, *.png ... auflistet:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
 my @types =
(["Alle Bilddateien", ['IMAGES', '.jpg|.gif|.bmp|.jpeg|.png']]);

$photo_frame->Button(-text => '-',
-command => sub {
$photo_file = $top->getOpenFile(
-filetypes => @types);
$top->update();
}
)


Kann mir wa der helfen? Ich hab auch schon die Doku kontaktiert und ein zwei Tutorials im Internet aufgesucht, allerdings sagen die mir dasselbe wie die Doku, und das versteh ich irgendwie nicht bzw. kanns nich umsetzen.

MfG Stefan\n\n

<!--EDIT|styx-cc|1155144199-->
Pörl.
renee
 2006-08-09 21:32
#45764 #45764
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
So funktionierts:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/perl

use strict;
use warnings;
use Tk;

my $path;
my $mw = tkinit();
$mw->Entry(-textvariable => \$path)->pack();
$mw->Button(-command => \&search_file, -text => 'Datei wählen')->pack();

MainLoop;

sub search_file{
my @filetypes = (['All Images', ['.GIF','.XBM','.XPM','.BMP']],
['All Images',['.PNG','.PPM','.PGM','.JPEG','.JPG']],);
$path = $mw->getOpenFile(-filetypes => \@filetypes);
}


Ich habe zwei Mal 'All Images', die aber zusammengeführt werden. Ich habe das gemacht, weil es unter Windows einen Bug gibt (siehe auch rt.cpan.org)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
styx-cc
 2006-08-09 21:38
#45765 #45765
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Es geht!
Merci :)
Pörl.
Schreiberling
 2006-08-24 16:57
#45766 #45766
User since
2006-08-07
11 Artikel
BenutzerIn
[default_avatar]
Gibt es so ein Windowsfenster nur fürs Laden, oder gibt es sowas auch zum speichern.

Wäre ganz hilfreich :rock:
renee
 2006-08-24 17:12
#45767 #45767
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
da heißt es ganz einfach getSaveFile
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Schreiberling
 2006-08-24 17:25
#45768 #45768
User since
2006-08-07
11 Artikel
BenutzerIn
[default_avatar]
da hätte ich auch selbst drauf kommen können.

Herzlichen Dank!
<< >> 10 Einträge, 1 Seite



View all threads created 2006-08-07 14:00.