在 Ruby GTK 编程教程的这一部分中,我们将介绍 GTK 库并使用 Ruby 编程语言创建第一个程序。
本教程的目的是帮助您开始使用 GTK 和 Ruby。 可以在此处下载来下载贪食蛇游戏的图像。
关于
GTK 是用于创建图形用户界面的工具包。 Ruby 是一种流行的脚本语言。
简单的例子
在第一个示例中,我们创建一个简单的窗口。 窗口在屏幕上居中。
#!/usr/bin/ruby
'''
ZetCode Ruby GTK tutorial
This program centers a window on
the screen.
Author: Jan Bodnar
Website: www.zetcode.com
Last modified: May 2014
'''
require 'gtk3'
class RubyApp < Gtk::Window
def initialize
super
set_title "Center"
signal_connect "destroy" do
Gtk.main_quit
end
set_default_size 300, 200
set_window_position Gtk::Window::Position::CENTER
show
end
end
Gtk.init
window = RubyApp.new
Gtk.main
本示例在屏幕中央显示一个300x200px
的窗口。
require 'gtk3'
require
关键字导入我们将在应用中使用的必要类型。
class RubyApp < Gtk::Window
该示例继承自Gtk::Window
-顶级容器。
set_title "Center"
我们为窗口设置标题。
signal_connect "destroy" do
Gtk.main_quit
end
当单击标题栏中的关闭按钮或按 Alt + F4
时,会触发destroy
信号。 Gtk.main_quit
方法退出该应用。
set_default_size 300, 200
我们为应用窗口设置默认大小。
set_window_position Gtk::Window::Position::CENTER
这条线使窗口在屏幕上居中。 也可以使用:center
符号。
show
一切准备就绪后,我们在屏幕上显示窗口。
Gtk.init
window = RubyApp.new
Gtk.main
这三行设置了应用。
工具提示
第二个示例将显示一个工具提示。 工具提示是一个小的矩形窗口,它提供有关对象的简短信息。 它通常是一个 GUI 组件。 它是应用帮助系统的一部分。
#!/usr/bin/ruby
'''
ZetCode Ruby GTK tutorial
This program shows a tooltip on
a window and a button.
Author: Jan Bodnar
Website: www.zetcode.com
Last modified: May 2014
'''
require 'gtk3'
class RubyApp < Gtk::Window
def initialize
super
init_ui
end
def init_ui
set_title "Tooltips"
signal_connect "destroy" do
Gtk.main_quit
end
fixed = Gtk::Fixed.new
add fixed
button = Gtk::Button.new :label =>'Button'
button.set_size_request 80, 35
button.set_tooltip_text "Button widget"
fixed.put button, 50, 50
set_tooltip_text "Window widget"
set_default_size 300, 200
set_window_position :center
show_all
end
end
Gtk.init
window = RubyApp.new
Gtk.main
如果将鼠标指针悬停在窗口和按钮小部件的上方,则会弹出工具提示。
def initialize
super
init_ui
end
用户界面的创建委托给init_ui
方法。
fixed = Gtk::Fixed.new
add fixed
Gtk::Fixed
是一个允许将小部件定位在固定坐标的容器。 对于更复杂的应用,必须使用布局管理器。
button = Gtk::Button.new :label =>'Button'
Gtk::Button
小部件已创建。
button.set_size_request 80, 35
set_size_request
方法为按钮小部件提供大小:宽度:80,高度:35。
button.set_tooltip_text "Button widget"
我们使用set_tooltip_text
方法设置工具提示。
fixed.put button, 50, 50
按钮窗口小部件以 x:50,y:50 坐标放置在Gtk::Fixed
容器中。 坐标系从窗口的左上方开始。
set_tooltip_text "Window widget"
我们为Gtk::Window
小部件设置了一个工具提示。
图:工具提示 s
退出按钮
在本章的最后一个示例中,我们将创建一个退出按钮。 当我们按下此按钮时,应用终止。
#!/usr/bin/ruby
'''
ZetCode Ruby GTK tutorial
This program creates a quit
button. When we press the button,
the application terminates.
Author: Jan Bodnar
Website: www.zetcode.com
Last modified: May 2014
'''
require 'gtk3'
class RubyApp < Gtk::Window
def initialize
super
init_ui
end
def init_ui
fixed = Gtk::Fixed.new
add fixed
button = Gtk::Button.new :label => "Quit"
button.set_size_request 80, 35
button.signal_connect "clicked" do
Gtk.main_quit
end
fixed.put button, 50, 50
set_title "Quit button"
signal_connect "destroy" do
Gtk.main_quit
end
set_default_size 300, 200
set_window_position(:center)
show_all
end
end
Gtk.init
window = RubyApp.new
Gtk.main
在示例中,我们将Gtk::Button
小部件放置在窗口上。 我们将处理器附加到clicked
信号。
button = Gtk::Button.new :label => "Quit"
创建带有标签"Quit"
的Gtk::Button
。
button.signal_connect "clicked" do
Gtk.main_quit
end
我们将main_quit
方法插入按钮clicked
信号。
show_all
我们有两个选择。 在所有小部件上调用show
,或调用show_all
(显示容器及其所有子代)。
图:退出按钮
本章介绍了使用 Ruby 语言的 GTK 库。