原文: http://zetcode.com/gui/rubygtk/introduction/

在 Ruby GTK 编程教程的这一部分中,我们将介绍 GTK 库并使用 Ruby 编程语言创建第一个程序。

本教程的目的是帮助您开始使用 GTK 和 Ruby。 可以在此处下载来下载贪食蛇游戏的图像

关于

GTK 是用于创建图形用户界面的工具包。 Ruby 是一种流行的脚本语言。

简单的例子

在第一个示例中,我们创建一个简单的窗口。 窗口在屏幕上居中。

  1. #!/usr/bin/ruby
  2. '''
  3. ZetCode Ruby GTK tutorial
  4. This program centers a window on
  5. the screen.
  6. Author: Jan Bodnar
  7. Website: www.zetcode.com
  8. Last modified: May 2014
  9. '''
  10. require 'gtk3'
  11. class RubyApp < Gtk::Window
  12. def initialize
  13. super
  14. set_title "Center"
  15. signal_connect "destroy" do
  16. Gtk.main_quit
  17. end
  18. set_default_size 300, 200
  19. set_window_position Gtk::Window::Position::CENTER
  20. show
  21. end
  22. end
  23. Gtk.init
  24. window = RubyApp.new
  25. Gtk.main

本示例在屏幕中央显示一个300x200px的窗口。

  1. require 'gtk3'

require关键字导入我们将在应用中使用的必要类型。

  1. class RubyApp < Gtk::Window

该示例继承自Gtk::Window-顶级容器。

  1. set_title "Center"

我们为窗口设置标题。

  1. signal_connect "destroy" do
  2. Gtk.main_quit
  3. end

当单击标题栏中的关闭按钮或按 Alt + F4 时,会触发destroy信号。 Gtk.main_quit方法退出该应用。

  1. set_default_size 300, 200

我们为应用窗口设置默认大小。

  1. set_window_position Gtk::Window::Position::CENTER

这条线使窗口在屏幕上居中。 也可以使用:center符号。

  1. show

一切准备就绪后,我们在屏幕上显示窗口。

  1. Gtk.init
  2. window = RubyApp.new
  3. Gtk.main

这三行设置了应用。

工具提示

第二个示例将显示一个工具提示。 工具提示是一个小的矩形窗口,它提供有关对象的简短信息。 它通常是一个 GUI 组件。 它是应用帮助系统的一部分。

  1. #!/usr/bin/ruby
  2. '''
  3. ZetCode Ruby GTK tutorial
  4. This program shows a tooltip on
  5. a window and a button.
  6. Author: Jan Bodnar
  7. Website: www.zetcode.com
  8. Last modified: May 2014
  9. '''
  10. require 'gtk3'
  11. class RubyApp < Gtk::Window
  12. def initialize
  13. super
  14. init_ui
  15. end
  16. def init_ui
  17. set_title "Tooltips"
  18. signal_connect "destroy" do
  19. Gtk.main_quit
  20. end
  21. fixed = Gtk::Fixed.new
  22. add fixed
  23. button = Gtk::Button.new :label =>'Button'
  24. button.set_size_request 80, 35
  25. button.set_tooltip_text "Button widget"
  26. fixed.put button, 50, 50
  27. set_tooltip_text "Window widget"
  28. set_default_size 300, 200
  29. set_window_position :center
  30. show_all
  31. end
  32. end
  33. Gtk.init
  34. window = RubyApp.new
  35. Gtk.main

如果将鼠标指针悬停在窗口和按钮小部件的上方,则会弹出工具提示。

  1. def initialize
  2. super
  3. init_ui
  4. end

用户界面的创建委托给init_ui方法。

  1. fixed = Gtk::Fixed.new
  2. add fixed

Gtk::Fixed是一个允许将小部件定位在固定坐标的容器。 对于更复杂的应用,必须使用布局管理器。

  1. button = Gtk::Button.new :label =>'Button'

Gtk::Button小部件已创建。

  1. button.set_size_request 80, 35

set_size_request方法为按钮小部件提供大小:宽度:80,高度:35。

  1. button.set_tooltip_text "Button widget"

我们使用set_tooltip_text方法设置工具提示。

  1. fixed.put button, 50, 50

按钮窗口小部件以 x:50,y:50 坐标放置在Gtk::Fixed容器中。 坐标系从窗口的左上方开始。

  1. set_tooltip_text "Window widget"

我们为Gtk::Window小部件设置了一个工具提示。

Ruby GTK 简介 - 图1

图:工具提示 s

退出按钮

在本章的最后一个示例中,我们将创建一个退出按钮。 当我们按下此按钮时,应用终止。

  1. #!/usr/bin/ruby
  2. '''
  3. ZetCode Ruby GTK tutorial
  4. This program creates a quit
  5. button. When we press the button,
  6. the application terminates.
  7. Author: Jan Bodnar
  8. Website: www.zetcode.com
  9. Last modified: May 2014
  10. '''
  11. require 'gtk3'
  12. class RubyApp < Gtk::Window
  13. def initialize
  14. super
  15. init_ui
  16. end
  17. def init_ui
  18. fixed = Gtk::Fixed.new
  19. add fixed
  20. button = Gtk::Button.new :label => "Quit"
  21. button.set_size_request 80, 35
  22. button.signal_connect "clicked" do
  23. Gtk.main_quit
  24. end
  25. fixed.put button, 50, 50
  26. set_title "Quit button"
  27. signal_connect "destroy" do
  28. Gtk.main_quit
  29. end
  30. set_default_size 300, 200
  31. set_window_position(:center)
  32. show_all
  33. end
  34. end
  35. Gtk.init
  36. window = RubyApp.new
  37. Gtk.main

在示例中,我们将Gtk::Button小部件放置在窗口上。 我们将处理器附加到clicked信号。

  1. button = Gtk::Button.new :label => "Quit"

创建带有标签"Quit"Gtk::Button

  1. button.signal_connect "clicked" do
  2. Gtk.main_quit
  3. end

我们将main_quit方法插入按钮clicked信号。

  1. show_all

我们有两个选择。 在所有小部件上调用show,或调用show_all(显示容器及其所有子代)。

Ruby GTK 简介 - 图2

图:退出按钮

本章介绍了使用 Ruby 语言的 GTK 库。