新規作成  編集  Ruby-GNOME2 Project Website  ページ一覧  検索  更新履歴  編集履歴  RSS  Back  ログイン

gtk2-tut-aspectframe 差分 - Ruby-GNOME2 Project Website

  • 最後の更新で追加された部分はこのように表示します。
  • 最後の更新で削除された部分はこのように表示します。

= アスペクトフレーム
アスペクトフレームウィジェットはフレームウィジェットに似ているが,必要に応じてスペースを空けるなどして子ウィジェットのアスペクト比(幅と高さの比)を一定に保つという点で異なる.
これは,例えば大きなイメージのプレビューを表示する際に便利である.
プレビューのサイズはユーザがウィンドウをリサイズすると変化するが,そのアスペクト比は元のイメージと同じであることが望ましい.

新しくアスペクトフレームを作成するには:

  Gtk::AspectFrame.new(label, xalign, yalign, ratio, obey_child)

xalignとyalignには((<アラインメントウィジェット|gtk2-tut-alignment>))と同様のアラインメント値を与える.
もしobey_childがtrueなら,子ウィジェットのアスペクト比は子ウィジェットが要求する理想的なサイズに保たれう.falseを指定するとアスペクト比はratioになる.

既にあるアスペクトフレームのオプションを変更するには以下のメソッドを使う.

  Gtk::AspectFrame#set(xalign, yalign, ratio, obey_child)

次のサンプルは,ユーザがトップレベルウィンドウをリサイズしてもドローイングエリアのアスペクト比を常に 2:1に保つようになっている.

  #! /usr/bin/env ruby
  
  require 'gtk2'
  
  window = Gtk::Window.new
  window.title = "Aspect Frame"
  window.signal_connect("destroy") {Gtk.main_quit}
  window.border_width = 10
  
  aspect_frame = Gtk::AspectFrame.new(
   "2x1",    # label
   0.5,      # xalign
   0.5,      # yalign
   2,        # ratio == xsize/ysize
   false     # ignore child's aspect
  )
  
  window.add(aspect_frame)
  
  drawing_area = Gtk::DrawingArea.new
  drawing_area.set_size_request(200, 200)
  aspect_frame.add(drawing_area)
  
  window.show_all
  
  Gtk.main