[ruby-gnome2-doc-cvs] [Hiki] update - ラベル

Zurück zum Archiv-Index

ruby-****@lists***** ruby-****@lists*****
2003年 5月 26日 (月) 21:36:30 JST


-------------------------
REMOTE_ADDR = 210.249.193.205
REMOTE_HOST = 
        URL = http://ruby-gnome2.sourceforge.jp/?%A5%E9%A5%D9%A5%EB
-------------------------
= Gtk::Label

((*部分的には直しましたけど、まだRuby/GTK向けのものです。*))

== 基本的な使い方
  require 'gtk2'

  Gtk.init
  label = Gtk::Label.new("Hello World")

  window = Gtk::Window.new
  window.add(label)
  window.show_all
  Gtk.main

== テキストを後から設定する
Gtk::Label.new時ではなく、生成後にGtk::Labelに文字列を指定することもできます(当たり前か(^^;))。

  require 'gtk2'
 
  Gtk.init
  label = Gtk::Label.new("Hello")
  text = label.text
  label.set_text(text + " World")
  
  window = Gtk::Window.new
  window.add(label)
  window.show_all
  Gtk.main
  
--- Gtk::Label#text
    現在Gtk::Labelに指定されている文字列を取得します。

--- Gtk::Label#set_text(text)
    textにテキストを指定します。

== スタイル(前景色/背景色/フォント)を指定する
前景色/フォントを変更するにはGtk::Labelに対してGtk::Widget#set_style()すれば良いのですが、背景色は直接Gtk::Labelに対して指定できません。そのため、ここではGtk::Labelの親ウィジェットにGtk::EventBoxを使って、Gtk::EventBoxに対して色をつけます。

  require 'gtk2'
  
  Gtk.init
  style = Gtk::Style.new
  style.set_font(Gdk::Font.fontset_load("-adobe-helvetica-bold-r-normal--24-*"))
  style.set_fg(Gtk::STATE_NORMAL, 0, 65535, 0)
  style.set_bg(Gtk::STATE_NORMAL, 65535, 0, 0)
  
  label = Gtk::Label.new("Hello World")
  label.set_style(style)
  eventbox = Gtk::EventBox.new
  eventbox.set_style(style)
  eventbox.add(label)
  
  window = Gtk::Window.new
  window.add(eventbox)
  window.show_all
  Gtk.main
  

Gtk::Labelは backgroundの色を保持する Gdk::Windowを持っていないので、Gtk::Widget#set_style()しても色が見えないというわけです。

== スタイル(前景色/背景色/フォント)を指定する2
2では独自にstyleを生成(Gtk::Style.new())しましたが、以下のようにGtk::Widget#get_style()を用いて既存のウィジェットからスタイルを取り出してそれを変更するということもできます。
 なんとなくこっちの方が確実な感じがするのですが、いかがでしょう? 

  require 'gtk2'
 
  Gtk.init
  window = Gtk::Window.new
  
  style = window.get_style
  style.set_fg(Gtk::STATE_NORMAL, 0, 65535, 0)
  
  label = Gtk::Label.new("Hello World")
  label.set_style(style)
  
  window.add(label)
  window.show_all
  Gtk.main

※ 日本語の場合、Gtk::Style#set_font(font)を使ってフォントの指定をしないと文字化けするようです。なんでだろ。もうちょっと調べますか...。

== 2行以上の表示と右寄せ/左寄せ/中央寄せ
2行以上表示する場合は単に指定文字列に\nを入れればOKです。ここでは、Gtk::Label#set_justify()を使って右寄せにしています。

  require 'gtk2'
 
  label = Gtk::Label.new("first line\nsecond line\nhoge fuga uge ugyo")
  label.set_justify(Gtk::JUSTIFY_RIGHT)
  
  window = Gtk::Window.new
  window.add(label)
  window.show_all
  Gtk.main
  
  
--- Gtk::Label#set_justify(type)
     * Gtk::JUSTIFY_LEFT   - 左寄せ
     * Gtk::JUSTIFY_RIGHT  - 右寄せ
     * Gtk::JUSTIFY_CENTER - 中央寄せ(デフォルト)
     * Gtk::JUSTIFY_FILL   - ?(イメージ的には単語毎かなんかにスペースを入れてくれそうなんだけど....)
  
Gtk::Label#set_justify()はLabel自体、2行以上指定しないと意味がないみたいです。Labelの幅より小さい文字列を指定した場合は1行でも調節されると思っていたんですが...。

== 行末で折り返す
Gtk::LabelにはテキストがGtk::Label自体の幅より大きくなってしまった場合に、単語毎に自動的に改行してくれるLine(Word) wrap機能があります。

  require 'gtk2'

  Gtk.init
  label = Gtk::Label.new("hoge fuga uge ugyo hoge fuga uge ugyo hoge fuga uge")
  label.set_line_wrap(true)
  
  window = Gtk::Window.new
  window.add(label)
  window.show_all
  Gtk.main
  
--- Gtk::Label#set_line_wrap(line_wrap)
     * line_wrap - Line wrapする場合はtrue、しない場合はfalseを設定します。
  
== アンダーラインを引く
Gtk::Label#set_pattern()をするとアンダーラインを指定することができます。  

  require 'gtk2'
 
  label = Gtk::Label.new("hoge fuga\nuge")
  #label.set_line_wrap(true)
  label.set_pattern("____ ____ ___")  
  
  window = Gtk::Window.new
  window.add(label)
  window.show_all
  Gtk.main
  
なんか、Gtk::Label#set_line_wrap(true)と一緒には使えないみたいです。上記例でlabel.set_line_wrap(true)のコメントを外すとアンダーラインが表示されなくなります。

== メニューバーで使うようにアンダーラインを引く
Gtk::ItemFactoryのアクセラレータキーの指定方法と同様の方法でアンダーラインを引くこともできます。ただし、この方法はGTK+の内部で使われることを意図して作られたメソッドですので、使うことはほとんどないでしょう。

  require 'gtk2'
 
  label = Gtk::Label.new("")
  p label.parse_uline("_Files")  
  
  window = Gtk::Window.new
  window.add(label)
  window.show_all
  Gtk.main
  
Gtk::Label#parse_uline(text)の戻り値はアンダースコアの次の1字を小文字にした場合のキー値になります。例えば、上記例(_Files)ではfのキー値です。
-------------------------
= ラベル

((*まだRuby/GTK向けのものです。*))

== 基本的な使い方
  require 'gtk2'

  Gtk.init
  label = Gtk::Label.new("Hello World")

  window = Gtk::Window.new
  window.add(label)
  window.show_all
  Gtk.main

== テキストを後から設定する
Gtk::Label.new時ではなく、生成後にGtk::Labelに文字列を指定することもできます(当たり前か(^^;))。

  require 'gtk2'
 
  Gtk.init
  label = Gtk::Label.new("Hello")
  text = label.text
  label.set_text(text + " World")
  
  window = Gtk::Window.new
  window.add(label)
  window.show_all
  Gtk.main
  
--- Gtk::Label#text
    現在Gtk::Labelに指定されている文字列を取得します。

--- Gtk::Label#set_text(text)
    textにテキストを指定します。

== スタイル(前景色/背景色/フォント)を指定する
前景色/フォントを変更するにはGtk::Labelに対してGtk::Widget#set_style()すれば良いのですが、背景色は直接Gtk::Labelに対して指定できません。そのため、ここではGtk::Labelの親ウィジェットにGtk::EventBoxを使って、Gtk::EventBoxに対して色をつけます。

  require 'gtk2'
  
  Gtk.init
  style = Gtk::Style.new
  style.set_font(Gdk::Font.fontset_load("-adobe-helvetica-bold-r-normal--24-*"))
  style.set_fg(Gtk::STATE_NORMAL, 0, 65535, 0)
  style.set_bg(Gtk::STATE_NORMAL, 65535, 0, 0)
  
  label = Gtk::Label.new("Hello World")
  label.set_style(style)
  eventbox = Gtk::EventBox.new
  eventbox.set_style(style)
  eventbox.add(label)
  
  window = Gtk::Window.new
  window.add(eventbox)
  window.show_all
  Gtk.main
  

Gtk::Labelは backgroundの色を保持する Gdk::Windowを持っていないので、Gtk::Widget#set_style()しても色が見えないというわけです。

== スタイル(前景色/背景色/フォント)を指定する2
2では独自にstyleを生成(Gtk::Style.new())しましたが、以下のようにGtk::Widget#get_style()を用いて既存のウィジェットからスタイルを取り出してそれを変更するということもできます。
 なんとなくこっちの方が確実な感じがするのですが、いかがでしょう? 

  require 'gtk2'
 
  Gtk.init
  window = Gtk::Window.new
  
  style = window.get_style
  style.set_fg(Gtk::STATE_NORMAL, 0, 65535, 0)
  
  label = Gtk::Label.new("Hello World")
  label.set_style(style)
  
  window.add(label)
  window.show_all
  Gtk.main

※ 日本語の場合、Gtk::Style#set_font(font)を使ってフォントの指定をしないと文字化けするようです。なんでだろ。もうちょっと調べますか...。

== 2行以上の表示と右寄せ/左寄せ/中央寄せ
2行以上表示する場合は単に指定文字列に\nを入れればOKです。ここでは、Gtk::Label#set_justify()を使って右寄せにしています。

  require 'gtk2'
 
  label = Gtk::Label.new("first line\nsecond line\nhoge fuga uge ugyo")
  label.set_justify(Gtk::JUSTIFY_RIGHT)
  
  window = Gtk::Window.new
  window.add(label)
  window.show_all
  Gtk.main
  
  
--- Gtk::Label#set_justify(type)
     * Gtk::JUSTIFY_LEFT   - 左寄せ
     * Gtk::JUSTIFY_RIGHT  - 右寄せ
     * Gtk::JUSTIFY_CENTER - 中央寄せ(デフォルト)
     * Gtk::JUSTIFY_FILL   - ?(イメージ的には単語毎かなんかにスペースを入れてくれそうなんだけど....)
  
Gtk::Label#set_justify()はLabel自体、2行以上指定しないと意味がないみたいです。Labelの幅より小さい文字列を指定した場合は1行でも調節されると思っていたんですが...。

== 行末で折り返す
Gtk::LabelにはテキストがGtk::Label自体の幅より大きくなってしまった場合に、単語毎に自動的に改行してくれるLine(Word) wrap機能があります。

  require 'gtk2'

  Gtk.init
  label = Gtk::Label.new("hoge fuga uge ugyo hoge fuga uge ugyo hoge fuga uge")
  label.set_line_wrap(true)
  
  window = Gtk::Window.new
  window.add(label)
  window.show_all
  Gtk.main
  
--- Gtk::Label#set_line_wrap(line_wrap)
     * line_wrap - Line wrapする場合はtrue、しない場合はfalseを設定します。
  
== アンダーラインを引く
Gtk::Label#set_pattern()をするとアンダーラインを指定することができます。  

  require 'gtk2'
 
  label = Gtk::Label.new("hoge fuga\nuge")
  #label.set_line_wrap(true)
  label.set_pattern("____ ____ ___")  
  
  window = Gtk::Window.new
  window.add(label)
  window.show_all
  Gtk.main
  
なんか、Gtk::Label#set_line_wrap(true)と一緒には使えないみたいです。上記例でlabel.set_line_wrap(true)のコメントを外すとアンダーラインが表示されなくなります。

== メニューバーで使うようにアンダーラインを引く
Gtk::ItemFactoryのアクセラレータキーの指定方法と同様の方法でアンダーラインを引くこともできます。ただし、この方法はGTK+の内部で使われることを意図して作られたメソッドですので、使うことはほとんどないでしょう。

  require 'gtk2'
 
  label = Gtk::Label.new("")
  p label.parse_uline("_Files")  
  
  window = Gtk::Window.new
  window.add(label)
  window.show_all
  Gtk.main
  
Gtk::Label#parse_uline(text)の戻り値はアンダースコアの次の1字を小文字にした場合のキー値になります。例えば、上記例(_Files)ではfのキー値です。




ruby-gnome2-cvs メーリングリストの案内
Zurück zum Archiv-Index