我正在尝试遵循wiki Tcl lang page上的教程/代码片段。
#! /usr/local/bin/wish
button .hello -text "Hello, World!" -command { exit }
pack .hello
它出现以下错误:
$ tclsh hello_world.tcl
无效的命令名称“按钮”
在执行
“按钮.hello -text”你好,世界!“ -command {exit}”
(文件“ hello_world.tcl”第4行)
,然后按 retry ,我得到了:
这不是我想要的。
我只想要一个带有“ Hello World”的简单按钮,单击该按钮将关闭执行脚本/命令时启动的窗口。
搜索术语“在Tcl中加载Tk” 或类似内容并没有帮助。
在两种情况下如何获得可行的示例?
答案 0 :(得分:3)
似乎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
而不是硬编码到特定位置。
答案 1 :(得分:2)
您需要先加载Tk,换句话说:
#! /usr/local/bin/wish
package require Tk ;# This line
button .hello -text "Hello, World!" -command { exit }
pack .hello