我正在寻找关于Tk::Methods和TK::Submethods语句的信息,这些语句经常出现在Tk小部件源文件中。我搜索网页和堆栈溢出,没有找到任何有用的信息。
我专门研究了Tk::Text小部件的实现。例如,
Tk::Methods (... 'insert'...)
这句话不意味着insert必须是Tk::Text小部件中的一个方法吗?
我找不到对insert子例程的任何引用?
我确实找到了Insert (注意大写I),那么Tk::Methods是否以某种方式操作输入字符串?
发布于 2016-05-03 09:18:24
没有use。Methods是一个在Tk.pm中声明的子例程,许多小部件只是调用它。
子例程的用途可以从用法或它的源(UTSL)中猜测出来:
sub Methods
{
my ($package) = caller;
no strict 'refs';
foreach my $meth (@_)
{
my $name = $meth;
*{$package."::$meth"} = sub { shift->WidgetMethod($name,@_) };
}
}它在调用方的命名空间中创建给定的方法,即
package MyWidget;
Tk::Methods('insert');将在insert类中创建MyWidget方法,该方法将作为
shift->WidgetMethod('insert', @_)https://stackoverflow.com/questions/36999719
复制相似问题