跳转至

Ruby GTK 简介

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

在 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小部件设置了一个工具提示。

Tooltips

图:工具提示 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(显示容器及其所有子代)。

Quit button

图:退出按钮

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



回到顶部