gpt4 book ai didi

ruby glade3/gtkbuilder 示例

转载 作者:数据小太阳 更新时间:2023-10-29 08:13:34 24 4
gpt4 key购买 nike

我正在尝试将 glade3 与 Ruby 一起使用,但不幸的是,这样的例子很少。查看可用的内容,我想出了以下代码,但仍然缺少一些东西,因为窗口没有显示。似乎没有任何 GtkBuilder 的“显示”方法,所以我不确定需要什么才能让它出现。有谁知道我需要做什么才能完成这项工作?

“hello.xml”只是一个相当简单的 glade3 xml 文件,带有一个 GtkWindow 和一个按钮。

#!/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

你好.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

最佳答案

如果您使用 visualruby,该程序会更容易编写。这是你的代码会是什么样子:

class HelloGlade

include GladeGUI

def initialize
load_glade(__FILE__)
show_window()
end

end

您不需要设置“可见”属性,也不需要编写代码来关闭窗口或连接信号。一切都是自动完成的。这里有很多例子:

http://visualruby.net

关于ruby glade3/gtkbuilder 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7681833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com