12.1.1 概述
在2001年,Tk可能是Ruby最常用的GUI。它是Ruby最早使用的GUI,长期以来一直是标准的Ruby的一部分。虽然现在不如以前流行,但仍被广泛使用。
有人说Tk过时了,喜欢面向对象的简单界面的人可能对它感到失望,但它具有著名、可移植和稳定等优点。
所有Ruby/Tk应用程序都必须使用require来加载tk扩展,然后使用容器和填充容器的控件逐步创建应用程序的界面,最后,调用Tk.mainloop,该方法捕获所有事件(如鼠标移动和单击按钮)并做出相应的响应。
require "tk" |
与大多数窗口系统一样,Tk的图形控件称为窗口部件(widget),这些窗口部件通常使用容器进行组合。顶级容器称为根(root);并非一定要显式地指定根,但这样做是一个不错的主意。
每个窗口部件类都根据它在Tk中的名称来命名(在名称前加上Tk),因此窗口部件Frame对应的类为TkFrame。
使用new方法实例化窗口部件,第一个参数指定窗口部件将要放入的容器,如果省略了,将放入到根容器中。
有两种方式可指定用于实例化窗口部件的选项。第一个方式(与Perl类似)是传递包含属性和值的散列(注意,在Ruby语法中,如果散列是最后一个或唯一的参数,可省略大括号)。
my_widget = TkSomewidget.new( "borderwidth" => 2, "height" => 40 , |
my_widget = TkSomewidget.new do |
| 回书目 上一节 下一节 |