我在Python脚本中看到了调用函数,称为
tk.call()
,但我不明白其含义。没有与之相关的文档。
任何人都可以解释一下call()
功能的功能。
这是一个简单的例子:
p.tk.call(p, 'put', color, '-to', 0, 0, p['width'], p['height'])
此功能的功能,其中p
是PhotoImage
小部件。
答案 0 :(得分:12)
Tkinter不是纯粹的蟒蛇。它是一个现场Tcl解释器,其扩展名为" tk"加载到解释器。大多数Tkinter命令,方法和对象最终都会作为tcl命令的调用结束。例如,当您执行以下操作时:
root = tk.Tk()
f = tk.Frame(root)
b = tk.Button(f, text="Press me!")
......它被翻译成(大致)这样的东西:
package require tk
frame .f
button .f.b -text "Press me!"
(注意:Tkinter实际上生成的名称比.f
和.f.b
更复杂,但概念是相同的)
call
方法是此底层tcl解释器的接口。它允许您构造一个tcl命令并要求解释器运行它。它是python和tcl之间的桥梁。
它通常不用于应用程序级代码,但在极少数情况下它可能很有用,其中tcl / tk周围的Tkinter包装器不能访问tcl / tk支持的某些功能。
答案 1 :(得分:4)
Tk.call()
来自Tkinter module,它可用于直接从Tkinter小部件执行基于tcl的命令。用于获取用户操作系统的示例Tkinter命令:
root.tk.call('tk', 'windowingsystem')
windowingsystem
是tcl的一个特征。
据我所知,tk.call()
没有官方文档。