您所在的位置: 首页>>读书频道>>设计开发>>C++>>

12.1.1 概述

http://book.51cto.com  2007-11-21 16:56  [美] Hal Fulton著 陈秋萍等译  人民邮电出版社  我要评论(0)

12.1.1  概述

在2001年,Tk可能是Ruby最常用的GUI。它是Ruby最早使用的GUI,长期以来一直是标准的Ruby的一部分。虽然现在不如以前流行,但仍被广泛使用。

有人说Tk过时了,喜欢面向对象的简单界面的人可能对它感到失望,但它具有著名、可移植和稳定等优点。

所有Ruby/Tk应用程序都必须使用require来加载tk扩展,然后使用容器和填充容器的控件逐步创建应用程序的界面,最后,调用Tk.mainloop,该方法捕获所有事件(如鼠标移动和单击按钮)并做出相应的响应。

require "tk"
# Setting up the app...
Tk.mainloop

与大多数窗口系统一样,Tk的图形控件称为窗口部件(widget),这些窗口部件通常使用容器进行组合。顶级容器称为根(root);并非一定要显式地指定根,但这样做是一个不错的主意。
每个窗口部件类都根据它在Tk中的名称来命名(在名称前加上Tk),因此窗口部件Frame对应的类为TkFrame。

使用new方法实例化窗口部件,第一个参数指定窗口部件将要放入的容器,如果省略了,将放入到根容器中。

有两种方式可指定用于实例化窗口部件的选项。第一个方式(与Perl类似)是传递包含属性和值的散列(注意,在Ruby语法中,如果散列是最后一个或唯一的参数,可省略大括号)。

my_widget = TkSomewidget.new( "borderwidth" => 2, "height" => 40 ,
"justify" => "center" )
另一种方式是将一个代码块传递给构造函数,该代码块将被instance_eval执行。在这个代码块中,可调用方法来设置窗口部件的属性(使用与属性同名的方法)。别忘了,代码块将在对象而不是调用者的上下文中执行。这就意味着在代码块中不能引用调用者的实例变量。
my_widget = TkSomewidget.new do
borderwidth 2
height 40
justify "center"
end
Tk中有三个几何体管理器,它们都用于显示在屏幕上的窗口部件的大小和位置。第一个(也是最常用的)管理器是pack,另外两个是grid和place。grid管理器很复杂,但也容易出错,place管理器是最简单的,因为它使用绝对值来指定窗口部件的位置。在本章的示例中,将只使用pack。

【责任编辑:雪花 TEL:(010)68476606】

回书目   上一节   下一节
Ruby实用开发手册
Java编程开发手册
全面回忆:史上四十款GUI
深入Vista应用程序开发
Ruby on Rails 社区网站开发
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有