关闭GUI而不退出应用程序TCL

时间:2016-06-07 02:29:12

标签: user-interface tcl tk

如何在不退出脚本的情况下关闭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
}

只要脚本proc中的变量发生更改

,就会在脚本proc中调用GUI proc

2 个答案:

答案 0 :(得分:3)

要使窗口消失而不破坏它(并结束应用程序),请在顶层使用wm withdraw

# Assuming you're just using the default one
wm withdraw .

您还可以拦截关闭窗口的请求(通过wm protocol)并撤消处理:

wm protocol . WM_DELETE_WINDOW {
    wm withdraw .
}

但是,如果你这样做,请确保提供一些其他方法来实际让进程退出(假设您正在进行正常的应用程序);用户无法真正关闭程序并让它消失,这令人沮丧。

答案 1 :(得分:0)

您可以使用以下内容关闭窗口:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="num">
    <option>Select...</option>
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
</select>
<br/>
<select id="comment">
    <option>Select...</option>
    <option>Yes</option>
    <option>No</option>
</select>

<br/>

<div id="log"></div>

http://www.tcl.tk/man/tcl8.4/TkCmd/wm.htm#M46

wm撤回 - 使窗口完全不可见,甚至不是图标。也让窗口管理器忘记了窗口。