in reply to Problem with Correct Widget focus();
You typically only need to put the tag in the binding if it refers to a window. Basically, just removing the $lstbox tag from the bind to <Delete> command makes it work.
BTW, it is usually better if you can provide a complete runable script when you ask a question. A lot of times, if there isn't a framework to run your code, your question will get fewer responses.
I built a small demo script using your posted code. Try this.
Update: Whoops, didn't notice extended select mode. Changed Deltxt sub appropriately.
use strict; use warnings; use Tk; my $testlbl = 15; my $font = '{New Times Roman} 12'; my $p2 = MainWindow->new; $p2->Label( -width => $testlbl, -text => "Parameter List", -foreground => '#FFFFFF', -background => '#666666', -font => $font, -anchor => 'center' )->grid( -row => 6, -column => 0, -columnspan => 5, -padx => 5, -pady => 0, -sticky => 'ew' ); my $lstbox = $p2->Scrolled( "Listbox", -scrollbars => 'osoe', -selectmode => 'extended', -foreground => '#FFFFFF', -background => '#7E7E68', -font => $font, -width => 40 )->grid( -row => 7, -column => 0, -columnspan => 5, -padx => 5, -pady => 0, -sticky => 'nsew' ); $lstbox->Subwidget("corner")->configure( -background => '#666666' +); $lstbox->Subwidget("xscrollbar")->configure( -background => '#666666' +); $lstbox->Subwidget("yscrollbar")->configure( -background => '#666666' +); $lstbox->bind( '<ButtonRelease-1>' => sub { $lstbox->focus } ); $lstbox->bind( '<Delete>' => \&Deltxt ); $lstbox->insert( 'end', $_ ) for ( 1 .. 20 ); MainLoop; sub Deltxt { return unless my @indicies = $lstbox->curselection; $lstbox->delete( $_ ) for @indicies; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Problem with Correct Widget focus();
by dakers001 (Initiate) on May 24, 2007 at 19:10 UTC |