GTK 中的 GUI 设计

GUI design in GTK

我正在尝试将 GTK 与 Ruby 2.0.0 结合使用来设计如下所示的用户界面:

ColHead1                         ColHead2
(box for user number input)      (box for user number input)

                               SubmitBtn

根据我阅读的 GTK 教程,我走到了这一步:

require 'gtk3'

class RubyApp < Gtk::Window

def initialize
    super   
    init_ui
end

def init_ui   

    table = Gtk::Table.new 2, 2, true
    submit = Gtk::Button.new :label => "Submit Btn"

    submit.signal_connect "clicked" do
        on_submit
    end 

    label = Gtk::Label.new "ColHead1"

    entry = Gtk::Entry.new
    entry.signal_connect "key-release-event" do |w, e|
        on_key_release w, e, label
    end

    set_title "Gtk::Entry"
    signal_connect "destroy" do 
        Gtk.main_quit 
    end  

    table.attach label, 0,1,0,1
    table.attach submit, 1, 0, 1, 0

        add table

    set_default_size 250, 200
    set_window_position :center

    show_all        
end  
=begin    
def on_key_release sender, event, label
    label.set_text sender.text
end
=end    
end

Gtk.init
window = RubyApp.new
Gtk.main

谁能解释一下如何正确实现上面显示的示例 gui?

我认为你有两个选择:

  1. 封装不同的容器:

创建一个垂直框 (Gtk::Box),向其中添加一个水平框,您可以在其中添加 Col1 小部件和 Col2 小部件。 然后将您的提交按钮添加到垂直框。

应将垂直 Box 添加到主 window。这样,您可以轻松配置每个小部件将如何填充它们分配的空间。

  1. 使用 Gtk 网格(它是 Gtk 的替代品 Table)