Thread Aus dem Label herausfinden in welcher Zeile ich bin (5 answers)
Opened by DarAvanger05 at 2014-03-17 13:37

DarAvanger05
 2014-03-17 13:37
#174190 #174190
User since
2014-03-03
44 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,
ich habe jetzt ein Skript geschrieben mit dem es mir möglich ist mehrere Datein auszuwählen.
So, nach dem öffnen Auswählen der Datei habe ich dass so möglich gemacht, dass der ausgwählte Datei Name neben dem Button für die DateiAuswahl steht. Bei einer Datei funktioniert das auch noch.
Wenn ich aber mein Konzept auf mehrer Button erweitere, schreibt er den Dateinamen immer nur an die letzte Position. Mir ist klar das es mit meinem Label zusammenhängt nur weiß ich nicht genau wie ich das ändere. Ich poste einfach mal noch nebenbei den Code:

more (6.3kb):
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
use strict;
use warnings;
use encoding 'utf8';
use Tk;
use Tk::PNG;
use Tk::JPEG;
use Image::Magick;
use Image::Size;
use MIME::Base64 'encode_base64';

#-------------------------------------------------------------------------------
# Deklaration
#-------------------------------------------------------------------------------
my %fotograf; # Name der Fotografen zu dem jeweiligen Bild
my %bildtitel; # Name des jeweiligen Bildes
my %bilddateien; # Bilddatein eingefügt werden sollen

my $i; # Schleifenvariable
my $label; # Label des Fensters
my $variable;

#--- Label und Entry Feld für den Fotografen
my $fotograph_entry;
my $fotograph_label;

#--- Label und Entry Feld für den Bildtitel
my $bildtitel_label;
my $bildtitel_entry;

my $answer; # Name der ausgweählten Datei
my $mw = Tk::MainWindow->new(); # Neues Fenster erstellen
$mw->title("Bildauswahl"); # Bildtitel setzen

#-------------------------------------------------------------------------------
# Bearbeitung des Fensters
#-------------------------------------------------------------------------------

for($i=0; $i<2; $i++)
{
$variable="label"."$i";

#--- Button hinzufügen
my $button = $mw->Button(-text => "Wählen sie ein Bild aus, dass sie einfügen möchten",
-command => \&datei_auswaehlen,)
->grid(-row=>$i, -column =>0);
#--- Ausgewählten Namen der Datei anzeigen
$variable = $mw->Label(-text => 'Bisher keine Datei ausgewählt',)->grid(-row=>$i, -column =>1);

#--- Eingabefeld für den Namen des Fotografen
$fotograph_label = $mw->Label(-text => 'Fotograph')->grid(-row=>$i, -column =>2);
$fotograph_entry = $mw->Entry()->grid(-row=>$i, -column=>3);

#--- Eingabefeld für den Bildtitel
$bildtitel_label = $mw->Label(-text => 'Bildtitel',)->grid(-row=>0, -column =>4);
$bildtitel_entry = $mw->Entry()->grid(-row=>$i, -column=>5);

}
#--- Button um die Wert zu übernehmen
my $uebernehmen = $mw->Button(-text=>'übernehmen', -command=>sub{bilddaten_sammeln()})->grid(-row=>$i+1, -column=>1);

#--- Label für das Bild
my $bildlabel = $mw->Label->grid(-row=>0, -column => 6);




#--- Fenster halten
$mw->MainLoop();


#-------------------------------------------------------------------------------
# Ausgabe (Noch darauf überprüfen ob alles vorhanden ist bevor es ausgegeben wird!)
#-------------------------------------------------------------------------------
printf "Titel: $bildtitel{bild1} Fotograf: $fotograf{bild1} Bilddatei: $bilddateien{bild1}";

#-------------------------------------------------------------------------------
# Funktionen
#-------------------------------------------------------------------------------


#=== FUNCTION ================================================================
# NAME: datei_auswaehlen
# PURPOSE:
# PARAMETERS: Keine Parameter
# RETURNS: Kein Returnwert
# DESCRIPTION: Diese Funktion öffnet den Datei öffnen Dialog und macht es somit
# möglich eine Datei (in diesem Fall ein Bild) auszuwählen, welches
# zu der Präsentation hinzugefügt werden soll.
# THROWS: no exceptions
# COMMENTS:
# SEE ALSO:
#===============================================================================
sub datei_auswaehlen
{
$answer = $mw->getOpenFile(); # Hierdurch werden nur Datein mit diesen Endungen angezeigt
$variable->configure(-text => $answer); # Hier wird das der Name der Datei am Ende neben den Button eingefügt

#my $image = Image::Magick->new();
#$image->Read($answer);
#$image->Scale(width=>100);
#$image->Scale(height=>100);

#my $pic = $mw->Photo(-data=>encode_base64($answer), -format=>'jpg');
#$bildlabel->configure(-image=>$pic);
# printf $answer;
}

#=== FUNCTION ================================================================
# NAME: bilddaten_sammeln
# PURPOSE:
# PARAMETERS: Keine
# RETURNS: Kein Returnwert
# DESCRIPTION: Diese Funktion sammelt die Daten die zu eeinem Bild gehören (sprich
# den Name des Fotografen und den Namen des Bildes) und packt diese in
# zwei Hashes.
# Den Namen in den Hash %fotograf und den Titel in den Hash %bildtitel.
# Die Bilddatei wird anschließend in den Hash %bilddateien gepackt
# THROWS: no exceptions
# COMMENTS: none
# SEE ALSO: n/a
#===============================================================================
sub bilddaten_sammeln
{
$fotograf{bild1}=$fotograph_entry->get; # Name des Fotografen
$bildtitel{bild1}=$bildtitel_entry->get; # Bildtitel
$bilddateien{bild1}=$answer; # Name der Bilddatei

}


modedit Editiert von pq: more-tag hinzugefügt
Last edited: 2014-03-17 18:27:03 +0100 (CET)

View full thread Aus dem Label herausfinden in welcher Zeile ich bin