[#39325] File.fnmatch の改良について — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

はじめまして、山本です。

18 messages 2004/03/05

[#39429] trial version of Ruby/Tk — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

18 messages 2004/03/23
[#39454] Re: trial version of Ruby/Tk — "Shirai,Kaoru" <shirai@...> 2004/03/31

白井です。

[#39460] Re: trial version of Ruby/Tk — Hidetoshi NAGAI <nagai@...> 2004/04/01

永井@知能.九工大です.

[#39465] Re: trial version of Ruby/Tk — "Shirai,Kaoru" <shirai@...> 2004/04/01

白井です。

[#39466] Re: trial version of Ruby/Tk — Hidetoshi NAGAI <nagai@...> 2004/04/01

永井@知能.九工大です.

[#39453] Re: int/int in Ruby2? — Masaaki Sakano <mas@...>

坂野 正明です。

36 messages 2004/03/31
[#39455] Re: int/int in Ruby2? — NISHIMATSU Takeshi <t-nissie@...> 2004/03/31

西松と申します.

[#39470] Re: int/int in Ruby2? — Masaaki Sakano <mas@...> 2004/04/01

坂野 正明です。

[#39473] Re: int/int in Ruby2? — matz@... (Yukihiro Matsumoto) 2004/04/01

まつもと ゆきひろです

[#39484] Re: int/int in Ruby2? — Masaaki Sakano <mas@...> 2004/04/03

坂野 正明です。

[#39528] Re: int/int in Ruby2? — "T Akutsu" <locrian@...> 2004/04/09

あくつです。なんかわくわくしてきだぞ。(^^;)

[ruby-list:39399] ruby-gtk2でのclassの書き方

From: yeru@...006.vaio.ne.jp
Date: 2004-03-20 20:07:26 UTC
List: ruby-list #39399
この度参加させていただきます。
えとーと申します。

いろいろ試してみたのですが、どうもうまく行かないので
質問させていただきます。

環境はDebian GNU/Linux sid
ruby           1.8.1-3
libgtk2-ruby   0.8.1-8

です。

ちょっと切り分けできてないので、全部張らせていただきます。

--ここから--
#!/usr/bin/ruby1.8

require 'gtk2'
require 'gettext'
include GetText

bindtextdomain("dsys")


class Diversions < Gtk::TreeView
#diversions

	def initialize
		divertarry = []
		divertlistd = open("/var/lib/dpkg/diversions")
		each_diversion(divertlistd){|divert|
      	divertarry << divert
		}
		divertlistd.close
		
		@divertmodel = Gtk::ListStore.new(String, String, String)
		super(@divertmodel)
		divertarry.each do |v1, v2, v3|
			divertiter = @divertmodel.append
			divertiter.set_value(0, v1)
			divertiter.set_value(1, v2)
			divertiter.set_value(2, v3)
		end
		
		divertrenderer = Gtk::CellRendererText.new

		divertcol1 = Gtk::TreeViewColumn.new(_("File"), divertrenderer, {:text => 0})
		divertcol2 = Gtk::TreeViewColumn.new(_("Divert-to"), divertrenderer, {:text => 1})
		divertcol3 = Gtk::TreeViewColumn.new(_("Package"), divertrenderer, {:text => 2})
		append_column(divertcol1)
		append_column(divertcol2)
		append_column(divertcol3)
		set_rules_hint(true)
	end

	def each_diversion (io)
		while !io.eof?
			ary = []
			ary.clear
			3.times do ary << io.gets.chomp!
		end
			yield ary
		end
	end
end

class Base
	def initialize
		window = Gtk::Window.new(Gtk::Window::TOPLEVEL)
		window.set_title("gsysview")
		window.set_border_width(0)
		window.set_size_request(800, 500)
		window.signal_connect("delete_event") do exit end
		window.signal_connect("destroy_event") do exit end
		window.realize
		
		divertscw = Gtk::ScrolledWindow.new
		divertscw.border_width = 10
		divertscw.set_shadow_type(Gtk::SHADOW_IN)
		divertscw.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC)
		divertscw.add(Diversions.new)		
		
		tabu = Gtk::Notebook.new
		divertlabel = Gtk::Label.new("Diversions")
		tabu.append_page(divertscw, divertlabel)
		
		window.add(tabu)
		window.show_all
	end
end

Gtk.init

Base.new

Gtk.main

--ここまで--

というようなコードがあるのですが。
ScrolledWindowな部分もDiversionsクラスに持っていきたいと
思っています。

そこで、Diversionsクラスで
		class Diversions とし、treeview関連を追加して
      sw = Gtk::ScrolledWindow.new
      sw.border_width = 10
      sw.set_shadow_type(Gtk::SHADOW_IN)
      sw.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC)
      sw.add_with_viewport(view)
とかを追加して
Baseクラスの
      divertscw = Gtk::ScrolledWindow.new
      divertscw.border_width = 10
      divertscw.set_shadow_type(Gtk::SHADOW_IN)
      divertscw.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC)
      divertscw.add(Diversions.new)
を削除し

tabu.append_page(divertscw, divertlabel)
を
tabu.append_page(Diversion.new, divertlabel)
などとしました。

が、
$ ./divertion.rb 
./divertion.rb:74:in `append_page': fundamental type GBoxed isn't supported (TypeError)

        from ./divertion.rb:74:in `initialize'
        from ./divertion.rb:83:in `new'
        from ./divertion.rb:83
などと出てしまいます。

APIリファレンスをGBoxedでgrepかけたのですが、該当せずに行き詰ってしまいました。
どのようにすればよいのか御教授願えれば幸いです。
長文失礼しました。

In This Thread

Prev Next