是否可以在 Tcl 中从另一个内部过程调用一个内部过程?
Is it possible to invoke one internal proc from another in Tcl?
当我不得不对 Tk 的源代码进行更改时,我想到了这个问题。其中,调用时只有一个 proc
将结果带到 frame
小部件。
但是,由于内部代码的改进,这已经影响了 GUI [Tk]。在您呈现结果的方式中,您现在什么都不做,只需按下一个调用第二个 proc
的按钮。第二个 proc
放在第一个,因为现成的代码让我只看到了这个解决方案。
不过,两者是有联系的。我想到的是,如果可能的话,我可以从第一个 proc
中调用第二个内部 proc
,即第一个必须调用第二个并且一切都已解决。
示例:
proc one {} {
# your code here!
proc two {} {
# your code here!
}
}
pack [button .bt1 -text "Click-Me" -command { one }]
pack [button .bt2 -text "Click-Me" -command { two }]
围绕示例的说明,我将同时调用两个procedures/processes,只需一次,单击一个 button
,因为首先给我打开 frame
小部件,然后我将调用传递给第二个。每次点击 button
two.
都会给我带来随机结果
也许我正在寻找的是在按下第一个按钮时模拟单击第二个按钮,我认为它也可以。
但我不能忽略第一个,因为它包含为第二个服务的说明。
您的示例代码是从另一个内部定义一个过程。这是可能的,但新的 proc 仍将在当前命名空间中创建,或者如果名称包含命名空间限定符,则在指定的命名空间中创建。这意味着它也可以从封闭过程的外部访问。
要调用过程,只需像对任何命令一样输入过程名称和任何参数:
proc one {} {
# your code here!
proc two {} {
# Proc two definition
}
# Proc two invocation
two
}
当我不得不对 Tk 的源代码进行更改时,我想到了这个问题。其中,调用时只有一个 proc
将结果带到 frame
小部件。
但是,由于内部代码的改进,这已经影响了 GUI [Tk]。在您呈现结果的方式中,您现在什么都不做,只需按下一个调用第二个 proc
的按钮。第二个 proc
放在第一个,因为现成的代码让我只看到了这个解决方案。
不过,两者是有联系的。我想到的是,如果可能的话,我可以从第一个 proc
中调用第二个内部 proc
,即第一个必须调用第二个并且一切都已解决。
示例:
proc one {} {
# your code here!
proc two {} {
# your code here!
}
}
pack [button .bt1 -text "Click-Me" -command { one }]
pack [button .bt2 -text "Click-Me" -command { two }]
围绕示例的说明,我将同时调用两个procedures/processes,只需一次,单击一个 button
,因为首先给我打开 frame
小部件,然后我将调用传递给第二个。每次点击 button
two.
也许我正在寻找的是在按下第一个按钮时模拟单击第二个按钮,我认为它也可以。
但我不能忽略第一个,因为它包含为第二个服务的说明。
您的示例代码是从另一个内部定义一个过程。这是可能的,但新的 proc 仍将在当前命名空间中创建,或者如果名称包含命名空间限定符,则在指定的命名空间中创建。这意味着它也可以从封闭过程的外部访问。
要调用过程,只需像对任何命令一样输入过程名称和任何参数:
proc one {} {
# your code here!
proc two {} {
# Proc two definition
}
# Proc two invocation
two
}