"tk.call"函数在Python/Tkinter中有什么作用?

AB *_*bhi 9 python tkinter

我在Python脚本中看到了调用函数,称为 tk.call(),但我不明白它的含义.没有与之相关的文档.

任何人都可以解释一下功能的call()功能.

这是一个简单的例子:

p.tk.call(p, 'put', color, '-to', 0, 0, p['width'], p['height']) 
Run Code Online (Sandbox Code Playgroud)

该函数的功能,这里pPhotoImage小部件.

Bry*_*ley 13

Tkinter不是纯粹的python.它的基础是一个实时的Tcl解释器,其扩展名为"tk",加载到解释器中.大多数Tkinter命令,方法和对象最终都会作为tcl命令的调用结束.例如,当您执行以下操作时:

root = tk.Tk()
f = tk.Frame(root)
b = tk.Button(f, text="Press me!")
Run Code Online (Sandbox Code Playgroud)

......它被翻译成(大致)像这样的东西:

package require tk
frame .f
button .f.b -text "Press me!"
Run Code Online (Sandbox Code Playgroud)

(注意:Tkinter实际上生成的名称比.f和更复杂.f.b,但概念是相同的)

call方法是此底层tcl解释器的接口.它允许您构造一个tcl命令并要求解释器运行它.它是python和tcl之间的桥梁.

它通常不在应用程序级代码中使用,但在极少数情况下它可能很有用,其中tcl/tk周围的Tkinter包装器不提供对tcl/tk支持的某些功能的访问.

  • @Rinzler:唯一有用的文档是 tcl/tk 文档。当您调用 `call` 时,它实际上只是将参数直接转换为 tcl 命令(tcl 语句只是由命令和零个或多个参数组成的列表)。http://www.tcl.tk/man (3认同)

小智 5

Tk.call()来自Tkinter 模块,它可用于直接从 Tkinter 小部件执行基于tcl的命令。获取用户操作系统的示例 Tkinter 命令:

root.tk.call('tk', 'windowingsystem')
Run Code Online (Sandbox Code Playgroud)

windowingsystemtcl 的功能在哪里?

据我所知,没有关于tk.call().

  • 我刚刚发现这个凌乱的参考应该列出大部分命令 https://www.tcl.tk/man/tcl/TkCmd/ 你会像这样使用:`tk.call('wm', 'title' , 窗口, 字符串)` (2认同)