使用Ruby关闭TK窗口

时间:2014-12-30 11:54:14

标签: 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 message"
)
Tk.mainloop #No operation is performed until closing the TK window
Tk.destroy()
Tk.exit()

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

3 个答案:

答案 0 :(得分:1)

TK是库,你不应该制作TK.destroy,因为root是TkRoot的对象,它应该如下:

root.destroy()

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

答案 1 :(得分:0)

尝试Window.destroyWindow.iconify

答案 2 :(得分:0)

在Windows 7上使用Ruby 2.2.5(带有Tk 8.5.12)时,这对我有用:

       |---REG  xp yp mxc  [more stuff]
 CGRID | 
       |---CURV mxc myc    [more stuff]

TkDocs教程的Creating and Destroying Windows部分仅说:“ [i]如果您破坏了根窗口[,这将...结束您的应用程序。”但是,为了避免得到require 'tk' root = TkRoot.new root.title = "Window" msgBox = Tk.messageBox( 'type' => "okcancel", 'icon' => "info", 'title' => "Framework", 'message' => "This is message" ) if 'ok' == msgBox root.destroy Kernel.exit end Tk.mainloop ,我需要添加Segmentation fault