ruby-****@sourc*****
ruby-****@sourc*****
2003年 8月 22日 (金) 09:39:27 JST
------------------------- REMOTE_ADDR = 163.135.10.36 REMOTE_HOST = URL = http://ruby-gnome2.sourceforge.jp/ja/?gtk2-tut-fixed ------------------------- = フィックスドコンテナ フィックスドコンテナを使うと,子ウィジェットをウィンドウ内の左上を起点とした固定位置へ配置することができる. ウィジェットを配置する位置は動的に変更できる. Gtk::Fixed.new Gtk::Fixed#put(widget, x, y) Gtk::Fixed#move(widget, x, y) Gtk::Fixed.newは新しくフィックスドコンテナを作成する. Gtk::Fixed#putはwidgetをフィックスドコンテナ内のxとyで指定した位置に配置する. Gtk::Fixed#moveは指定したウィジェットを指定した位置へ移動する. Gtk::Fixed#has_window=(has_window) Gtk::Fixed#set_has_window(has_window) Gtk::Fixed#has_window? 通常フィックスドコンテナはXのウィンドウを持たない. これは以前のGTKとは異なる仕様なので,フィックスドコンテナが自分自身のウィンドウを持つよう設定するためにGtk::has_window=が用意されている. このメソッドはウィジェットが表示される前に呼ぶ必要がある. {{image_right "fixedcontainer.png"}} 以下の例はフィックスドコンテナの使用例である. #! /usr/bin/env ruby require 'gtk2' x = 50 y = 50 Gtk.init window = Gtk::Window.new window.title = "Fixed Container" window.signal_connect("destroy") {Gtk.main_quit} window.border_width = 10 fixed = Gtk::Fixed.new window.add(fixed) 1.upto(3) do |i| button = Gtk::Button.new("Press me") button.signal_connect("clicked") do |w| x = (x + 30) % 300 y = (y + 50) % 300 fixed.move(w, x, y) end fixed.put(button, i * 50, i * 50) end window.show_all Gtk.main