Schrift
[thread]5251[/thread]

in HList auf Zeileninhalt zugreifen

Leser: 2


<< >> 8 Einträge, 1 Seite
Kalmuecke
 2006-10-27 17:20
#45908 #45908
User since
2006-10-14
68 Artikel
BenutzerIn
[default_avatar]
Hi,

ich spiele momentan ein wenig mit Perl/TK herum und probiere mich an der HList!

Habe leider irgendwie keine Infos gefunden, wie man nun auf den Inhalt einer Zeile (besteht aus mehreren Spalten) zu greifen kann bzw. wie man dessen Inhalt in eine Variable bekommt um sie bspw. weiterzubearbeiten!

Kann mir da jemand ein paar Tipps bitte geben!
Danke im voraus
renee
 2006-10-27 21:41
#45909 #45909
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
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
#!/usr/bin/perl

use strict;
use warnings;
use Tk;
use Tk::HList;

my $mw = tkinit();
my $hlist = $mw->HList()->pack();
my $btn = $mw->Button(-text => 'auslesen',
-command => \&read_entry)->pack();

fill_list();

MainLoop;

sub fill_list{
for(0..4){
$hlist->add($_, -itemtype => 'text', -text => $_);
}
}

sub read_entry{
my $data = $hlist->entrycget(2,'-text');
print $data,"\n";
}
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/
Kalmuecke
 2006-10-30 15:21
#45910 #45910
User since
2006-10-14
68 Artikel
BenutzerIn
[default_avatar]
danke dir!

und wie kann man das an den "Klick" des Users binden?

sprich der Benutzer klickt auf eine Zeile und dann wird der Inhalt in einer Textbox angezeigt???
Und wie greife ich auf ggf. weitere Spalten zu?? Momentan wird ja nur die erste ausgewertet?
renee
 2006-10-30 15:25
#45911 #45911
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
$hlist->bind('<Button-1>', \&read_entry);


Definiere mal "andere Spalten"... Wie sollen die bestimmt werden? alle die markiert sind oder was?
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/
Kalmuecke
 2006-10-30 17:20
#45912 #45912
User since
2006-10-14
68 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
$hlist->itemCreate($i, 0, -text => $string);
$hlist->itemCreate($i, 1, -text => $string);
$hlist->itemCreate($i, 2, -text => $string);

So erzeuge in in einer Zeile mehrere Spalten! Ähnlich der Ansicht in Excel!

Und wenn ich nun eine Zeile an klicke, dann gibt es bspw. in C++ oder Java Methoden, die mir dann die Elemente einer Zeile zurückgeben!
styx-cc
 2006-10-30 17:49
#45913 #45913
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Wenn ich dich richtig verstanden habe:
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
#!/usr/bin/perl -w
use strict;

use Tk;
use Tk::HList;

my $main = tkinit();
my $hlist = $main->HList(-columns => 3)->pack(-fill => 'both', -expand => 1);

my $row = 0;
#irgendwas hinzufuegen
for my $col (0..2) {
$hlist -> add($row);
$hlist->itemCreate($row, $col, -itemtype => 'text', -text => "row: $row col: $col");
$row++;
}
#ausgabe
$main -> Button(-text => 'Print', -command => sub{print_out()})->pack;

MainLoop;

sub print_out {
#2,2 is letzte zeile, letzte spalte
#1,1 is zweite zeile, zweite spalte usw
my $outside = $hlist->itemCget(2, 2, -text);
print $outside ."\n";
}


MfG
Pörl.
renee
 2006-10-30 18:26
#45914 #45914
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du Excel-ähnliches machen willst, dann schau Dir mal CPAN:Tk::TableMatrix an...
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/
ptk
 2006-10-30 22:01
#45915 #45915
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Man könnte es auch mit Tk::HList hinkriegen, aber nur mit Tricks (die Breiten der Spalten addieren und dann mit der x-Koordinate des Mausklicks vergleichen).
<< >> 8 Einträge, 1 Seite



View all threads created 2006-10-27 17:20.