[ruby-gnome2-doc-cvs] [Hiki] update - テキストエントリ

Back to archive index

ruby-****@lists***** ruby-****@lists*****
2003年 6月 27日 (金) 14:47:02 JST


-------------------------
REMOTE_ADDR = 163.135.10.34
REMOTE_HOST = 
        URL = http://ruby-gnome2.sourceforge.jp/?%A5%C6%A5%AD%A5%B9%A5%C8%A5%A8%A5%F3%A5%C8%A5%EA
-------------------------
= テキストエントリ
((*まだRuby/GTK(1)用です*))

1行だけのテキストボックスです。

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

  entry = Gtk::Entry.new
  entry.set_text("Hello World")
  window = Gtk::Window.new
  window.set_usize(100,100)
  window.add(entry)
  window.show_all
  Gtk.main

--- Gtk::Entry.new
    テキストボックスを生成します。

--- Gtk::Entry.set_text(text)
    テキストを設定します。

== 入力された文字列を取得する
ボタンがクリックされた時に標準出力に入力された文字列を出力する例です。

  require 'gtk'

  entry = Gtk::Entry.new 
  button = Gtk::Button.new("click!")
  button.signal_connect(Gtk::Button::SIGNAL_CLICKED) do
    p entry.get_text
  end
 
  vbox = Gtk::VBox.new
  vbox.pack_start(entry)
  vbox.pack_start(button)
  window = Gtk::Window.new
  window.set_usize(100,100)
  window.add(vbox)
  window.show_all
  Gtk.main
	  
--- Gtk::Entry#get_text
    テキストボックスの文字列を返します。

== 最大長を指定する
入力可能な最大長を指定するには、Gtk::Entry#set_max_length()を使います。

  require 'gtk'

  entry = Gtk::Entry.new
  entry.set_max_length(10)

  window = Gtk::Window.new
  window.set_usize(100,100)
  window.add(entry)
  window.show_all
  Gtk.main

ただし、ここでのmax_length値は「文字数」であって「文字バイト数」ではないことに注意してください。例えば、全角の「あ」とかは10文字(20バイト分)入ってしまいます。

--- Gtk::Entry#set_max_length(length)
    入力可能な最大文字長を指定します。
    * length - 最大長(文字数)

== 入力できなくする
ユーザからの直接入力を避けたい場合はGtk::Editable#set_editable()をfalseに設定します。この場合はあくまでもユーザからの直接入力(キーボードからとか、カット&ペーストとか)をできなくするだけで、プログラム側からGtk::Entryに対して文字を設定することは可能です。

  require 'gtk'

  entry = Gtk::Entry.new
  entry.set_text("Hello World")
  entry.set_editable(false)

  vbox = VBox.new
  button = Button.new("click!")
  button.signal_connect(BUTTON::CLICKED) do
    entry.set_text("OK.")
  end
  vbox.add(entry)
  vbox.add(button)
  window = Gtk::Window.new
  window.set_usize(100,100)
  window.add(vbox)
  window.show_all
  Gtk.main

--- Gtk::Editable#set_editable(editable)
    テキストウィジェットの入力可否を指定します。
    * editable - trueの場合は入力可能(デフォルト)、falseの場合は入力不可能

== パスワード入力用に使う
入力すると実際は入力されているものの表示上は'****'となるやつです。Gtk::Entry#set_visibility()をfalseに設定します。

  require 'gtk'

  entry = Gtk::Entry.new
  entry.set_text("Hello World")
  entry.set_visibility(false)

  window = Gtk::Window.new
  window.set_usize(100,100)
  window.add(entry)
  window.show_all
  Gtk.main

--- Gtk::Entry#set_visibility(visible)
    パスワード入力用にするかどうかを指定します。
    visible - trueの場合は普通のテキスト(デフォルト)、falseの場合はパスワード入力用になります。

== 文字列を追加する
すでに入力されているテキストボックスに文字列を追加します。追加する方法としては、後ろにくっつける方法と前に挿入する方法があります。

  require 'gtk'

  entry = Gtk::Entry.new
  entry.set_text("Hello")
  entry.append_text(" World")
  entry.prepend_text("Hi! ")

  window = Gtk::Window.new
  window.set_usize(100,100)
  window.add(entry)
  window.show_all
  Gtk.main

--- Gtk::Entry#append_text(text)
    テキストを後ろに追加します。
    * text - 追加する文字列

--- Gtk::Entry#prepend_text(text)
    テキストを先頭に追加します。
    * text - 追加する文字列

-------------------------
= テキストエントリ 
エントリウィジェットは一行のテキストボックスに入力と表示ができる.
テキストはメソッドを使って新しいテキストに置き換えることもできるし,エントリウィジェットの現在の内容の先頭または後尾にテキストを追加することもできる.

まず,エントリウィジェットを作成する:

  Gtk::Entry.new

次のメソッドで,エントリウィジェットの現在の内容を変更することができる.

  Gtk::Entry#set_text(text)
  Gtk::Entry#text=(text)

Gtk::Entry#set_textは現在の内容を置き換えてエントリウィジェットの内容を設定する.
Gtk::EntryクラスはGtk::Editableモジュールをインクルードしているので,他にも内容を操作するための多くのメソッドを利用可能である.

エントリウィジェットの内容は次のメソッドで取得できる.

  Gtk::Entry#text

エントリの内容をキー入力によって変更されたくない場合は,編集可能状態を変更すればよい.

  Gtk::Entry#set_editable(editable)
  Gtk::Entry#editable=(editable)

このメソッドのeditable引数にtrueまたはfalseを与えることでエントリウィジェットの編集可能状態を切り替えることができる.

パスワード入力などのように入力したテキストを表示したくないようなところにエントリを使用する場合は,以下のメソッドで可視状態を変更しよう.

  Gtk::Entry#set_visibility(visible)
  Gtk::Entry#visibility=(visible)

テキストのある領域を選択状態に設定するには以下のメソッドを用いることができる.
これはエントリになにかデフォルトのテキストを設定した後に,ユーザが簡単にそれを削除できるようにするために使われるのがほとんどである.

  Gtk::Entry#select_region(start, end)

エントリウィジェットのテキストの先頭からstart文字目からend文字目まで((-正確にはstart文字目の前からend文字目の前-))が選択状態になる.
負の数はテキストの末尾を意味する.

ユーザがテキストを入力した事を捉えたい場合は"activate"または"changed"シグナルに接続すればよい.
"activate"シグナルはユーザがエントリウィジェット内でエンターキーを押したときに発行される.
"changed"シグナルはテキストを変更したときは常に,例えば文字を入力したり削除したりするたびに発行される.

{{image_right "entry.png"}}
以下のコードはエントリウィジェットの利用例である.

  #! /usr/bin/env ruby
  
  require 'gtk2'
  
  Gtk.init
  
  window = Gtk::Window.new
  window.set_size_request(200, 100)
  window.title = "GTK Entry"
  window.signal_connect("destroy") {Gtk.main_quit}
  
  vbox = Gtk::VBox.new(false, 0)
  window.add(vbox)
  
  entry = Gtk::Entry.new
  entry.max_length = 50
  entry.signal_connect("activate") {puts "Entry contents: #{entry.text}"}
  entry.text = "hello"
  entry.text += " world"
  entry.select_region(0, -1)
  vbox.pack_start(entry, true, true, 0)
  
  hbox = Gtk::HBox.new(false, 0)
  vbox.add(hbox)
  
  check = Gtk::CheckButton.new("Editable")
  check.signal_connect("toggled") {|w| entry.editable = w.active?}
  check.active = entry.editable?
  hbox.pack_start(check, true, true, 0)
      
  check = Gtk::CheckButton.new("Visible")
  check.signal_connect("toggled") {|w| entry.visibility = w.active?}
  check.active = entry.visibility?
  hbox.pack_start(check, true, true, 0)
  
  button = Gtk::Button.new("Close")
  button.signal_connect("clicked") {Gtk.main_quit}
  vbox.pack_start(button, true, true, 0)
  button.can_default = true
  button.grab_default
  
  window.show_all
  Gtk.main



((*ここから後ろはまだ未反映*))

= テキストエントリ
((*まだRuby/GTK(1)用です*))

1行だけのテキストボックスです。

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

  entry = Gtk::Entry.new
  entry.set_text("Hello World")
  window = Gtk::Window.new
  window.set_usize(100,100)
  window.add(entry)
  window.show_all
  Gtk.main

--- Gtk::Entry.new
    テキストボックスを生成します。

--- Gtk::Entry.set_text(text)
    テキストを設定します。

== 入力された文字列を取得する
ボタンがクリックされた時に標準出力に入力された文字列を出力する例です。

  require 'gtk'

  entry = Gtk::Entry.new 
  button = Gtk::Button.new("click!")
  button.signal_connect(Gtk::Button::SIGNAL_CLICKED) do
    p entry.get_text
  end
 
  vbox = Gtk::VBox.new
  vbox.pack_start(entry)
  vbox.pack_start(button)
  window = Gtk::Window.new
  window.set_usize(100,100)
  window.add(vbox)
  window.show_all
  Gtk.main
	  
--- Gtk::Entry#get_text
    テキストボックスの文字列を返します。

== 最大長を指定する
入力可能な最大長を指定するには、Gtk::Entry#set_max_length()を使います。

  require 'gtk'

  entry = Gtk::Entry.new
  entry.set_max_length(10)

  window = Gtk::Window.new
  window.set_usize(100,100)
  window.add(entry)
  window.show_all
  Gtk.main

ただし、ここでのmax_length値は「文字数」であって「文字バイト数」ではないことに注意してください。例えば、全角の「あ」とかは10文字(20バイト分)入ってしまいます。

--- Gtk::Entry#set_max_length(length)
    入力可能な最大文字長を指定します。
    * length - 最大長(文字数)

== 入力できなくする
ユーザからの直接入力を避けたい場合はGtk::Editable#set_editable()をfalseに設定します。この場合はあくまでもユーザからの直接入力(キーボードからとか、カット&ペーストとか)をできなくするだけで、プログラム側からGtk::Entryに対して文字を設定することは可能です。

  require 'gtk'

  entry = Gtk::Entry.new
  entry.set_text("Hello World")
  entry.set_editable(false)

  vbox = VBox.new
  button = Button.new("click!")
  button.signal_connect(BUTTON::CLICKED) do
    entry.set_text("OK.")
  end
  vbox.add(entry)
  vbox.add(button)
  window = Gtk::Window.new
  window.set_usize(100,100)
  window.add(vbox)
  window.show_all
  Gtk.main

--- Gtk::Editable#set_editable(editable)
    テキストウィジェットの入力可否を指定します。
    * editable - trueの場合は入力可能(デフォルト)、falseの場合は入力不可能

== パスワード入力用に使う
入力すると実際は入力されているものの表示上は'****'となるやつです。Gtk::Entry#set_visibility()をfalseに設定します。

  require 'gtk'

  entry = Gtk::Entry.new
  entry.set_text("Hello World")
  entry.set_visibility(false)

  window = Gtk::Window.new
  window.set_usize(100,100)
  window.add(entry)
  window.show_all
  Gtk.main

--- Gtk::Entry#set_visibility(visible)
    パスワード入力用にするかどうかを指定します。
    visible - trueの場合は普通のテキスト(デフォルト)、falseの場合はパスワード入力用になります。

== 文字列を追加する
すでに入力されているテキストボックスに文字列を追加します。追加する方法としては、後ろにくっつける方法と前に挿入する方法があります。

  require 'gtk'

  entry = Gtk::Entry.new
  entry.set_text("Hello")
  entry.append_text(" World")
  entry.prepend_text("Hi! ")

  window = Gtk::Window.new
  window.set_usize(100,100)
  window.add(entry)
  window.show_all
  Gtk.main

--- Gtk::Entry#append_text(text)
    テキストを後ろに追加します。
    * text - 追加する文字列

--- Gtk::Entry#prepend_text(text)
    テキストを先頭に追加します。
    * text - 追加する文字列





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