3
我正在嘗試將rubde3與glade3一起使用,但不幸的是,這種情況的例子很少。看看有什麼可用的,我已經提出了以下代碼,但仍然缺少一些東西,因爲窗口不顯示。似乎沒有任何GtkBuilder'show'方法,所以我不確定需要什麼來顯示它。有誰知道我需要做什麼來完成這項工作?ruby glade3/gtkbuilder示例
「hello.xml」只是一個相當簡單的帶有GtkWindow和按鈕的glade3 xml文件。
#!/usr/bin/env ruby
require 'rubygems'
require 'gtk2'
class HelloGlade
attr :glade
def initialize
if __FILE__ == $0
Gtk.init
builder = Gtk::Builder::new
builder.add_from_file("hello.xml")
builder.connect_signals{ |handler| method(handler) } # (I don't have any handlers yet, but I will have eventually)
Gtk.main()
end
end
def gtk_main_quit
puts "Gtk.main_quit"
Gtk.main_quit()
end
end
hello = HelloGlade.new
的hello.xml:
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk+" version="2.24"/>
<!-- interface-naming-policy project-wide -->
<object class="GtkWindow" id="window1">
<property name="can_focus">False</property>
<child>
<object class="GtkButton" id="button1">
<property name="label" translatable="yes">button</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_action_appearance">False</property>
</object>
</child>
</object>
</interface>
(編輯)
唉,它總是這樣。發表一個問題,我自己找出答案。我需要得到從GtkBuilder的WINDOW1對象,並調用它的show()方法:
...
window = builder.get_object("window1")
window.show()
Gtk.main
嘗試增加'<屬性名= 「可見」>真''以下<對象類= 「的GtkWindow」 ID = 「窗口1」>' – derp