Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Ruby关闭TK窗口_Ruby_Tk - Fatal编程技术网

使用Ruby关闭TK窗口

使用Ruby关闭TK窗口,ruby,tk,Ruby,Tk,我对Ruby是新手。我能够用下面的代码创建一个带有简单的ok/cancel按钮的简单窗口,它可以正常工作: require 'tk' root = TkRoot.new root.title = "Window" msgBox = Tk.messageBox( 'type' => "okcancel", 'icon' => "info", 'title' => "Framework", 'message' => "This is

我对Ruby是新手。我能够用下面的代码创建一个带有简单的ok/cancel按钮的简单窗口,它可以正常工作:

require 'tk'

root = TkRoot.new
root.title = "Window"

msgBox = Tk.messageBox(
  'type'    => "okcancel",  
  'icon'    => "info", 
  'title'   => "Framework",
  'message' => "This is message"
)
Tk.mainloop #No operation is performed until closing the TK window
Tk.destroy()
Tk.exit()

虽然我可以手动关闭窗口,但无法通过编程方式关闭窗口。有什么想法吗?

尝试
Window.destroy
Window.iconify
TK是库,您不应该使TK.destroy,因为root是TkRoot的对象,它应该如下所示:

root.destroy()

希望这个答案对其他人有帮助。

这对我在Windows 7上使用Ruby 2.2.5(含Tk 8.5.12)很有效:

需要“tk”
root=TkRoot.new
root.title=“窗口”
msgBox=Tk.messageBox(
“键入”=>“确定取消”,
'图标'=>“信息”,
“标题”=>“框架”,
'消息'=>“这是消息”
)
如果“确定”==msgBox
毁灭
内核退出
结束
主回路
TkDocs教程部分简单地说:“如果您碰巧破坏了根窗口[,这]将…结束您的应用程序。”但是,为了避免出现
分段错误
,我需要添加
内核。退出