Schrift
[thread]4929[/thread]

TK- Textausgabe in Listbox: Frame mit Listbox - Textausgabe



<< >> 10 Einträge, 1 Seite
nickjag
 2005-04-11 13:46
#43427 #43427
User since
2005-04-11
5 Artikel
BenutzerIn
[default_avatar]
Servus,
Ich versuche mit Hilfe von TKModul ein grafische Oberfläche zu erstellen. Möchte bei eingabe von einem Text, dass er in einem Frame auf der rechten Seite in eine Listbox ausgegeben wird.
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
#!/user/bin/perl -w

use strict;

use Tk;

my $haupt = new MainWindow;

my $links= $haupt->Frame();
$links->Label(-text => "Geben Sie einen Namen fuer die Datei an:")->pack();
my $ein = $links->Entry();
$ein->pack();

my $schalter = $links->Button(-text => "Eintragen",
              -command => \&eintragen
              )->pack();
             
my $schalter2 = $links->Button(-text => "Beenden",
              -command=>[$haupt => 'destroy']
              )->pack(-pady => "10");

my $rechts= $haupt ->Frame();
$rechts->Label(-text =>"Text Ausgabe:")->pack();
my $daten = $rechts ->Listbox();
$daten->pack();

$links ->pack(-side =>"left");
$rechts ->pack(-side =>"right");

MainLoop();

sub eintragen {
  $daten->insert('end', "". $ein);

}

bekomme bei der Ausgabe immer nur: TK:Entry=Hash(0x1a195),
was mache ich falsch???

edit renee: ne Runde [code]-Tags spendiert...\n\n

<!--EDIT|renee|1113214144-->
renee
 2005-04-11 14:08
#43428 #43428
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
sub eintragen {
$daten->insert('end', "". $ein->get());
}


Lesenswert: Wiki:Tk-Tutorial
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/
nickjag
 2005-04-11 16:02
#43429 #43429
User since
2005-04-11
5 Artikel
BenutzerIn
[default_avatar]
Genial danke!
Etwas hätte ich da noch! Wie kriege ich das hin, dass es eine nummerierte Aufzählung wird???
renee
 2005-04-11 16:27
#43430 #43430
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Was soll nummeriert werden?? die Zeilen oder was??

probier mal:
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
#!/user/bin/perl -w

use strict;

use Tk;

my $counter = 0;
my $haupt = new MainWindow;

my $links= $haupt->Frame();
$links->Label(-text => "Geben Sie einen Namen fuer die Datei an:")->pack();
my $ein = $links->Entry();
$ein->pack();

my $schalter = $links->Button(-text => "Eintragen",
-command => \&eintragen
)->pack();

my $schalter2 = $links->Button(-text => "Beenden",
-command=>[$haupt => 'destroy']
)->pack(-pady => "10");

my $rechts= $haupt ->Frame();
$rechts->Label(-text =>"Text Ausgabe:")->pack();
my $daten = $rechts ->Listbox();
$daten->pack();

$links ->pack(-side =>"left");
$rechts ->pack(-side =>"right");

MainLoop();

sub eintragen {
$daten->insert('end', $counter."". $ein->get());
$counter++;
}
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/
nickjag
 2005-04-12 15:01
#43431 #43431
User since
2005-04-11
5 Artikel
BenutzerIn
[default_avatar]
Genauso, spitze!
Jetzt hätte ich doch nur noch ein kleines Problem!!! Sorry!
Ich versuche mit dem selben Script in eine Textdatei einen Text auszugeben also einen Eintrag machen. Der wiederum wird der Listbox ausgeben wird. Mit:

open (HANDLE, "<nick.txt")
or die "Datei kann nicht ge\94ffnet werden!\";

open (HANDLE, ">nick.txt")
or die "Datei kann nicht ge\94ffnet werden!\";

undef $/:
my $text = <DATEI>;
print "\n\n$text\n";

## klappt das einfach nicht##

das ganze passt nicht mit dem TK-Script zusammen.

Gruss Udo
Strat
 2005-04-12 16:10
#43432 #43432
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
1. wenn du einen offenen Filehandle mit einem open erneut verwendest, wird der vorher offene geschlossen; und von HANDLE, das zum schreiben geoeffnet ist, kannst du nicht lesen...
2. wenn du einen filehandle namens HANDLE oeffnest, solltest du vermutlich auch von dem lesen und nicht von DATEI...
3. ueberlegt dir mal, use strict; und use warnings; zu verwenden; das haette dir bei der Fehlersuche enorm geholfen...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Crian
 2005-04-12 18:45
#43433 #43433
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
zu "use strict" siehe http://wiki.perl-community.de/bin/view/Wissensbasis/UseStrict
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
nickjag
 2005-04-14 16:19
#43434 #43434
User since
2005-04-11
5 Artikel
BenutzerIn
[default_avatar]
In meiner obersten Zeile habe ich doch -w, das mir auch einen Fehler angezeigt hat, oder mehrere! Und "use strict", passt doch auch!
Was ich nicht versteh ist, wird die Anweisung in den "sub eintrag" mit eingebracht? Und läuft dies dann über die Tastatureingabe <>? Auch über "print"? Oder, und über:
my $datei = "test.txt";

open (DATEI, "< $datei")

?????????
renee
 2005-04-14 16:25
#43435 #43435
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Meinst Du sowas:
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
#!/user/bin/perl -w

use strict;

use Tk;

my $counter = 0;
my $haupt = new MainWindow;

my $links= $haupt->Frame();
$links->Label(-text => "Geben Sie einen Namen fuer die Datei an:")->pack();
my $ein = $links->Entry();
$ein->pack();

my $schalter = $links->Button(-text => "Eintragen",
            -command => \&eintragen
            )->pack();
           
my $schalter2 = $links->Button(-text => "Beenden",
            -command=>[$haupt => 'destroy']
            )->pack(-pady => "10");

my $rechts= $haupt ->Frame();
$rechts->Label(-text =>"Text Ausgabe:")->pack();
my $daten = $rechts ->Listbox();
$daten->pack();

$links ->pack(-side =>"left");
$rechts ->pack(-side =>"right");

MainLoop();

sub eintragen {
$daten->insert('end', $counter."". $ein->get());
 open(FH,">>nickjag.txt") or die $!;
  print FH $counter," ",$ein->get(),"\n";
 close FH;
$counter++;
}
\n\n

<!--EDIT|renee|1113481546-->
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/
nickjag
 2005-04-15 20:21
#43436 #43436
User since
2005-04-11
5 Artikel
BenutzerIn
[default_avatar]
Cool, Danke!
Genauso dachte ich mir das. Habe aber immer Probleme beim schreiben der Textdatei gehabt.

Super!
<< >> 10 Einträge, 1 Seite



View all threads created 2005-04-11 13:46.