Tk Text组件:deleteTextTaggedWith方法调用失败的原因?
错误原因分析
你的代码如下:
my $mw = MainWindow->new; my $text = $mw->Text->pack; $text->insert('end', 'hello world', 'mytag'); $text->deleteTextTaggedWith('mytag'); MainLoop;
触发的错误提示:
无法在@INC中找到auto/Tk/Text/deleteTextT.al(已检查的@INC条目:/etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.38.2 /usr/local/share/perl/5.38.2 /usr/lib/x86_64-linux-gnu/perl5/5.38 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.38 /usr/share/perl/5.38 /usr/local/lib/site_perl),位于Programs/weird.pl第10行。
错误的核心原因:
- Tk::Text组件没有内置
deleteTextTaggedWith这个方法。Perl在尝试自动加载这个不存在的方法时,找不到对应的实现文件,因此抛出了找不到模块文件的错误。
如果要实现删除带有指定标签的文本,Tk::Text原生的正确写法是结合标签范围调用delete方法:
$text->delete('mytag.first', 'mytag.last');
内容的提问来源于stack exchange,提问作者Steve Waring
相关产品推荐
相关产品推荐

