关闭 GUI 而不退出应用程序 TCL
Close GUI without exiting application TCL
如何在不退出脚本的情况下关闭 GUI?
我有一个每 10 分钟运行一次的脚本,只要脚本中的一些变量发生变化就会调用 GUI,但是当我关闭 GUI 时,应用程序也会关闭。我尝试添加 -command {destroy .}
但它与 TK 中的 exit
命令做同样的事情,这是我的脚本
lappend auto_path "/bin/gui/scripts"
package require scriptgui
monitor /bin/files/folder1 /bin/files/folder2
set i 0
while {i < 1} {
after 600000
script
}
只要脚本过程中的变量发生变化,就会在脚本过程中调用 GUI 过程
您可以通过以下方式关闭 window:
if { [info commands wm] != {} } {wm withdraw .}
http://www.tcl.tk/man/tcl8.4/TkCmd/wm.htm#M46
wm withdraw - 使 window 完全不可见,甚至不是图标。也让 window 经理忘记了 window.
要使 window 消失而不破坏它(并结束应用程序),您可以在顶层使用 wm withdraw
。
# Assuming you're just using the default one
wm withdraw .
您还可以拦截关闭 window 的请求(通过 wm protocol
)并通过撤销处理该请求:
wm protocol . WM_DELETE_WINDOW {
wm withdraw .
}
但是,如果您这样做,请确保您提供了一些其他方式来让进程真正退出(假设您正在制作一个普通的应用程序);用户无法真正关闭程序并让它消失,这让用户感到沮丧。
如何在不退出脚本的情况下关闭 GUI?
我有一个每 10 分钟运行一次的脚本,只要脚本中的一些变量发生变化就会调用 GUI,但是当我关闭 GUI 时,应用程序也会关闭。我尝试添加 -command {destroy .}
但它与 TK 中的 exit
命令做同样的事情,这是我的脚本
lappend auto_path "/bin/gui/scripts"
package require scriptgui
monitor /bin/files/folder1 /bin/files/folder2
set i 0
while {i < 1} {
after 600000
script
}
只要脚本过程中的变量发生变化,就会在脚本过程中调用 GUI 过程
您可以通过以下方式关闭 window:
if { [info commands wm] != {} } {wm withdraw .}
http://www.tcl.tk/man/tcl8.4/TkCmd/wm.htm#M46
wm withdraw - 使 window 完全不可见,甚至不是图标。也让 window 经理忘记了 window.
要使 window 消失而不破坏它(并结束应用程序),您可以在顶层使用 wm withdraw
。
# Assuming you're just using the default one
wm withdraw .
您还可以拦截关闭 window 的请求(通过 wm protocol
)并通过撤销处理该请求:
wm protocol . WM_DELETE_WINDOW {
wm withdraw .
}
但是,如果您这样做,请确保您提供了一些其他方式来让进程真正退出(假设您正在制作一个普通的应用程序);用户无法真正关闭程序并让它消失,这让用户感到沮丧。