[ruby-gnome2-doc-cvs] [Hiki] create - gtk2-tut-fixed

Back to archive index

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






ruby-gnome2-cvs メーリングリストの案内
Back to archive index