Thread [TK] MListBox - Aktualisierung der Inhalte
(3 answers)
Opened by YAPD at 2016-09-27 18:19
Hi, ich muss vorweg sagen, dass ich mich nie tiefergehend mit irgendeinem GUI-Framework auseinandergesetzt habe.
Mein Wissen basiert auf zusammengeklaubten Fragmenten, um etwas lauffähiges zusammenzuschustern. Du verwendest eine Methode deleteEntry(), woher soll die stammen? YAPD Bei meinem Test erzeugt das eine Fehlermeldung: Code: (dl
)
Tk::Error: Failed to AUTOLOAD 'Tk::MListbox::deleteEntry' at TkTest.pl line 52. Danach findet keine weitere Bearbeitung der Daten statt, will sagen, es werden keine neuen Daten ins Widget eingefügt. Ersetze ich das deleteEntry aber durch ein delete, wie es in der perldoc zu Tk::MListbox beschrieben ist, funktioniert mein Testcode anstandslos. Hier noch mein Testcode: Code (perl): (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 #! /usr/bin/perl use strict; use warnings; use 5.010; use Tk; use Tk::MListbox; my $width = 1184; my $height = 318; my $mw = MainWindow->new( -title => 'testing' ); $mw->geometry( join 'x', $width, $height ); my $menu = $mw->Menu( -type => 'menubar' ); $mw->configure( -menu => $menu ); my $listbox = $mw->MListbox( -columns => [ [ -text => 'name', sortable => 1 ], [ -text => 'num', sortable => 1 ], ], ); $listbox->insert( 'end', [ foo => 1 ] ); $listbox->insert( 'end', [ bar => 4 ] ); $listbox->pack(); $listbox->insert( 'end', [ fuz => 8 ] ); my $btn_update = $mw->Button( -text => 'update', -command => sub { _update_mlistbox( $listbox ) }, ); my $btn_quit = $mw->Button( -text => 'quit', -command => sub { exit 0; }, ); $btn_update->pack; $btn_quit->pack; sub _update_mlistbox { my $list = shift; # NOT WORKING #$list->deleteEntry(0, 'end'); # working $list->delete(0, 'end'); # update/insert new data $listbox->insert( 'end', [ 1 => 'foo' ] ); $listbox->insert( 'end', [ 4 => 'bar' ] ); } MainLoop(); __END__ meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |