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 18:08
#174207 #174207
User since
2014-03-03
44 Artikel
BenutzerIn
[default_avatar]
Okay die $variable war nur eine Idee die ich aber schon wieder verworfen hatte.
Ich habe jetzt den Code angeändert und versuche das Label zu übergeben.
Jetzt allerdings kann ruft sich der Dateidialog direkt auf und nich erst nach einem Buttonklich..

more (6.1kb):
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
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

#--- 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++)
{
#--- Ausgewählten Namen der Datei anzeigen
my $label = $mw->Label(-text => 'Bisher keine Datei ausgewählt',)->grid(-row=>$i, -column =>1);

#--- Button hinzufügen
$mw->Button(-text => "Wählen sie ein Bild aus, das sie einfügen möchten",
-command => \&datei_auswaehlen($label))
->grid(-row=>$i, -column =>0);


#--- 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=>$i, -column =>4);
$bildtitel_entry = $mw->Entry()->grid(-row=>$i, -column=>5);

}
#--- Button um die Wert zu übernehmen
$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
{
my $label = shift;
$answer = $mw->getOpenFile(); # Hierdurch werden nur Datein mit diesen Endungen angezeigt
$label->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:42 +0100 (CET)

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