在Windows XP上使用TK。
my $mw = new MainWindow;
my $text1 = $mw->Text(-width=>20, -height=>10)
->place(-x=>350, -y=>460);
my $showlabel = $mw->Label(-text => "nothing selected")
->place(-x=>50, -y=>120);
$text1->configure( -command => sub {
$showlabel->configure(-text => "You selected:\t" .
$text1->getSelected()
)
}
);
运行代码后,每当我突出显示任何文本时,$showlabel
都不会更新。
有人可以帮忙吗?
答案 0 :(得分:2)
编辑:没有按钮的代码。
不要忘记在程序结束时调用MainLoop
来显示窗口。没有它,什么都不会发生。
试试这个:
use strict;
use warnings;
use Tk;
my $mw = new MainWindow;
my $text1 = $mw->Text(-width => 20, -height => 10)
->place(-x => 350, -y => 460);
my $showlabel = $mw->Label(-text => "nothing selectd")
->place(-x => 50, -y => 120);
$text1->bind('<KeyPress>' , \&sel);
$text1->bind('<ButtonPress>' , \&sel);
$text1->bind('<ButtonRelease>', \&sel);
MainLoop;
sub sel
{
$showlabel->configure(-text => "You selected:\t" . $text1->getSelected);
}
答案 1 :(得分:1)
使用此:
$text1->bind( '<<Selection>>', sub {
$showlabel->configure(-text => "You selected:\t".$text1->getSelected() )
} );