繁体   English   中英

如何将 python Tkinter 列表框转换为 Tcl/Tk?

[英]How to convert the python Tkinter listbox into Tcl/Tk?

如何将以下列表框 python 代码转换为 Tcl/Tk?

from tkinter import *

root = Tk()
root.title("Dude0")
root.geometry("400x400")

my_listbox = Listbox(root)
my_listbox.pack(pady=15)

root.mainloop()

这些天 tk 的所有示例似乎都是 python 而不是 TCL。

这是翻译:

package require Tk

wm title . "Dude0"
wm geometry . "400x400"

listbox .my_listbox
pack .my_listbox -pady 15

使用wish你会自动获得一个名为“.”的根 window,并且 wish 会自动监听事件,所以你不需要调用mainloop的等价物。 对于列表框等其他小部件,您需要为它们提供一个使用“.”的路径。 作为分隔符。 所以.my_listbox代表根 window 的子项。您可以将其分配给一个变量,但根据我的经验,只需为小部件本身提供用户友好的名称就足够了。

tkinter 中的大多数其他方法将是 tcl 中的 proc,而 tkinter 中的 kwargs 是 tcl 中的选项/值对(选项以破折号开头)。 因此,在 tcl 中,您可以执行pack.my_listbox -padx 15而不是my_listbox.pack(padx=15)

tkdocs.com有一个很好的教程,可以让您看到用 python、tcl、ruby 和 perl 编写的示例。

我不知道我对您的 python 代码的抄录是否对您有帮助,但我同意@GlennJackman 的观点,tkdocs 会比我的回复更有趣……也就是说,用 Tcl 编写的代码:

package require Tk ; # from tkinter import *

set root .root 
toplevel $root ; # root = Tk()

wm title $root "Dude0" ; # root.title("Dude0")
wm geometry $root "400x400" ; # root.geometry("400x400")

listbox $root.lb ; # my_listbox = Listbox(root)

pack $root.lb -pady 15 ; # my_listbox.pack(pady=15)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM