Perl/TkFAQ-10.13.如何在Text组件中获得某个标签的范围

王朝perl·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

原文:

10.13. How do I select a range of tags in a Text widget?

A question arose concerning getting a range of selections from a Text widget. Nick Ing-Simmons' answer mentions several possibilities including:

Keyboard Copy/Paste 'is' implemented of course...

Subj: RE: $Text->tag('ranges', 'sel') - does this work?In <199512291957.OAA02609@ohm.nrl.navy.mil>On Fri, 29 Dec 1995 14:57:42 -0500Charles J Williams <chas@ohm.nrl.navy.mil> writes:!I was writing a little tk perl today, and i decided to try to !implement a copy/paste using the 'sel' tag!!I enabled exportselection, and then try to probe the select !region with:!! $buffer = $text->tag('ranges', 'sel');!!$buffer comes back with one entry, the end of the selection.

That is to be expected - the scalar gets assigned the last element of the list.

!I tried:!! @buffer = $text->tag('ranges', 'sel');!!same difference.

This seems to work for me:

($start,$end) = $text->tagRanges('sel');

In perl/Tk ->tagRanges(...) is an alias for ->tag('ranges',...)

The following subroutine can also probe and print the tagRanges:

sub showsel { my $text = @_; my @info = $text->tagRanges('sel'); if (@info) { print "start=$info[0] end=$info[1]\n" } }

译文:

10.13. 如何在Text组件中获得某个标签的范围?

这是一个关于在Text组件中如何获得所选择文字的范围的问题。下面就是作者Nick Ing-Simmons的回答:

键盘的复制和粘贴确实是可以实现的……

主题:回复:$Text->tag(‘ranges’,’sel’) – 可以吗?

在<199512291957.OAA02609@ohm.nrl.navy.mil>

On Fri, 29 Dec 1995 14:57:42 –0500

Charles J Williams写到:

!我今天在写一些Perl/Tk的脚本,其中我想试着用’sel’的标签来实现复制和粘贴的功能。

!我启用了portselection,然后试图用下面的方法来获得所选择的区域:

! $buffer = $text -> tag(‘ranges’,’sel’);

!但是,$buffer获得的只是一条记录——是选择区域的结束点。

这是意料之中的,因为标量只能获得列表的最后一个值。

!我又尝试了下面的方法:

! @buffer = $text -> $tag(‘ranges’,’sel’);

!有些不同。

我觉得这样应该可以:

($start,$end) = $text -> tagRanges(‘sel’);

注:在Perl/Tk中->tagRanges(…)与->tag(‘ranges’,…)是等价的。

下面的子程序也可以获取并输出tagRanges的结果:

sub showsel

{

my $text = @_;

my @info = $text->tagRanges('sel');

if (@info)

{

print "start=$info[0] end=$info[1]\n"

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航