Tcl/Tk 绝对简单的 Hello World 示例失败 - 无效的命令名称 "button"
Tcl/Tk absolutely simple Hello World example fails - invalid command name "button"
我试图在 wiki Tcl lang page 上关注 tutorials/code-snippets。
- 但是很遗憾,不管了,如果我把下面的代码写在一个文本文件中hello_world.tcl,如下图:
#! /usr/local/bin/wish
button .hello -text "Hello, World!" -command { exit }
pack .hello
它给出了以下错误:
$ tclsh hello_world.tcl
invalid command name "button"
while executing
"button .hello -text "Hello, World!" -command { exit }"
(file "hello_world.tcl" line 4)
- 或者如果我启动 tkcon 并重复相同的操作,我会收到此通知:
然后按 重试,我得到这个:
这不是我想要的。
我只想要一个带有 "Hello World" 的简单按钮,单击该按钮将关闭在执行 script/command.
时启动的 window
谷歌搜索术语 "Load Tk in Tcl" 或类似的东西没有任何帮助。
如何在这两种情况下得到一个有效的例子?
需要先加载Tk,即:
#! /usr/local/bin/wish
package require Tk ;# This line
button .hello -text "Hello, World!" -command { exit }
pack .hello
看起来 Tcl 文件已被 tclsh 配置为 运行(默认情况下不加载 Tk 包)而不是 wish(加载 Tk)。最简单的修复方法是在脚本的开头显式加载它:
package require Tk
在所有情况下;然后你要么让事情按你预期的那样工作,要么你会得到一个明显的失败,说 Tk 无法加载(而不是一个更神秘的消息,说没有 button
命令)。
规范地,推荐的方法是:
#! /usr/bin/env wish
package require Tk
button .hello -text "Hello, World!" -command { exit }
pack .hello
因为这允许在路径上找到 wish
而不是 hard-coded 到特定位置。
我试图在 wiki Tcl lang page 上关注 tutorials/code-snippets。
- 但是很遗憾,不管了,如果我把下面的代码写在一个文本文件中hello_world.tcl,如下图:
#! /usr/local/bin/wish
button .hello -text "Hello, World!" -command { exit }
pack .hello
它给出了以下错误:
$ tclsh hello_world.tcl
invalid command name "button"
while executing
"button .hello -text "Hello, World!" -command { exit }"
(file "hello_world.tcl" line 4)
- 或者如果我启动 tkcon 并重复相同的操作,我会收到此通知:
然后按 重试,我得到这个:
这不是我想要的。
我只想要一个带有 "Hello World" 的简单按钮,单击该按钮将关闭在执行 script/command.
时启动的 window谷歌搜索术语 "Load Tk in Tcl" 或类似的东西没有任何帮助。
如何在这两种情况下得到一个有效的例子?
需要先加载Tk,即:
#! /usr/local/bin/wish
package require Tk ;# This line
button .hello -text "Hello, World!" -command { exit }
pack .hello
看起来 Tcl 文件已被 tclsh 配置为 运行(默认情况下不加载 Tk 包)而不是 wish(加载 Tk)。最简单的修复方法是在脚本的开头显式加载它:
package require Tk
在所有情况下;然后你要么让事情按你预期的那样工作,要么你会得到一个明显的失败,说 Tk 无法加载(而不是一个更神秘的消息,说没有 button
命令)。
规范地,推荐的方法是:
#! /usr/bin/env wish
package require Tk
button .hello -text "Hello, World!" -command { exit }
pack .hello
因为这允许在路径上找到 wish
而不是 hard-coded 到特定位置。