- 论坛徽章:
- 0
|
这是网上的代码,略有修改,执行后,鼠标点击节点文字,会在命令行窗口输出节点文字。
- #!/usr/bin/perl
- use strict;
- use warnings;
- use English;#有此句 不需要 my @ARG=();
- use Tk;
- use Tk::Tree;
- my $main = MainWindow->new(-title => "语法树" );
- $main->geometry("400x600");#1368
- my $tree = $main->ScrlTree(
- -font => 'FixedSys 8',
- -itemtype => 'text',
- -separator => '/',
- -scrollbars => "se",
- -selectmode => 'single',
- -browsecmd => \sub {
- my ($numbers) = @ARG;
- print $numbers. "\n";
- }
- );
- $tree->add( "one" , -text => "one" );
- $tree->add( "one.111" , -text => "one.111" );
- $tree->add( "two" , -text => "two" );
- $tree->add( "two.222" , -text => "two.222" );
- $tree->pack();
- MainLoop();
复制代码
我现在想改为utf8下处理汉字,但是这时编译提示需要声明 my @ARG=(); 但执行后,点击树节点,却不能输出节点文字。
- #!/usr/bin/perl
- use strict;
- use warnings;
- use utf8 ;
- use Encode;
- use Tk;
- use Tk::Tree;
- my @ARG=();#utf8 必须
- my $main = MainWindow->new(-title => "语法树" );
- $main->geometry("400x600");#1368
- my $tree = $main->ScrlTree(
- -font => 'FixedSys 8',
- -itemtype => 'text',
- -separator => '/',
- -scrollbars => "se",
- -selectmode => 'single',
- -browsecmd => \sub {
- my ($numbers) = @ARG;
- print $numbers. "\n";
- }
- );
- $tree->add( "one" , -text => "one" );
- $tree->add( "one.111" , -text => "one.111" );
- $tree->add( "two" , -text => "two" );
- $tree->add( "two.222" , -text => "two.222" );
- $tree->pack();
- MainLoop();
复制代码 |
|