Create  Edit  Diff  FrontPage  Index  Search  Changes  History  Source  RSS  wikifarm  Login

Checkbox

Checkbox

ほとんどのwidgetセットには、チェックされてるかされてないかのトグル式の値を持つCheckboxが含まれている。NewtのCheckboxはより柔軟である。 ユーザがCheckbox上でスペースキーを押すと、任意のシーケンスの次の値に変化します。ほとんどのCheckboxには、チェックされたかチェックされてないかの2つの値を取ることができますが、newtの場合任意の数値を許可します。

Newt::Checkbox#new([left[,top[,text[,defValue[,seq]]]]])

左からleft、上からtopの位置にチェックされるエリアの右に表示されるテキスト、defValueはチェックボックスのデフォルトの値(seqに含まれている)。seqはチェックボックス上で選択できる文字列です。" *X"となっていれば、スペースバーを押す毎に[ ]、[*]、[X]の順に入れ替わります。

resultは意味がありません。Newt::Checkbox#GetValueを使って値を得てください。

Newt::Checkbox#GetValue?

チェックボックスの値を取得します。

Newt::Checkbox#SetValue?

Newt::Checkbox#SetFlags?

サンプルプログラム

#!/usr/bin/env ruby

require 'newt'

Newt::init
Newt::cls

Newt::openWindow(10, 5, 40, 11, "Checkboxes and Radio buttons")

checkbox = Newt::Checkbox.new(1, 1, "A checkbox", ' ', " *X")

rb = Array.new(3)

rb[0] = Newt::Radiobutton.new(1, 3, "Choice 1", 1, nil)
rb[1] = Newt::Radiobutton.new(1, 4, "Choice 2", 0, rb[0])
rb[2] = Newt::Radiobutton.new(1, 5, "Choice 3", 0, rb[1])

button = Newt::Button.new(1, 7, "Ok")

form = Newt::Form.new(nil, nil ,0)
form.AddComponent(checkbox)
0.upto(2) do |i|
  form.AddComponent(rb[i])
end
form.AddComponent(button)

form.Run
Newt::finished

# We cannot destroy the form until after we've found the  current
# radio button

0.upto(2) do |i|
  if rb[0].GetCurrent == rb[i] then
     printf("radio button picked: %d\n", i)
  end
end

cbValue = checkbox.GetValue

form.Destroy

# But the checkbox's value is stored locally
printf("checkbox value: '%s'\n",cbValue)
Last modified:2003/09/02 00:31:24
Keyword(s):
References:[Reference]