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

时间:2015-02-21 09:11:26

标签: python tkinter

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

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

这是一个简单的例子:

p.tk.call(p, 'put', color, '-to', 0, 0, p['width'], p['height']) 

此功能的功能,其中pPhotoImage小部件。

2 个答案:

答案 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()没有官方文档。