Книга: Программирование на языке Ruby
12.3.4. Текстовые поля
12.3.4. Текстовые поля
FOX располагает полезными средствами для ввода текста. В следующем примере демонстрируется применение класса FXTextField
для редактирования одной строки. Параметры определяют формат текста. Значение TEXTFIELD_PASSWD
скрывает текст, являющийся паролем, TEXTFIELD_REAL
позволяет вводить только действительные числа в научной нотации, a TEXTFIELD_INTEGER
— только целые числа.
simple = FXTextField.new(main, 20, nil, 0,
JUSTIFY_RIGHT|FRAME_SUNKEN|
FRAME_THICK|LAYOUT_SIDE_TOP)
simple.text = "Simple Text Field"
passwd = FXTextField.new(main, 20, nil, 0,
JUSTIFY_RIGHT|TEXTFIELD_PASSWD|
FRAME_SUNKEN|FRAME_THICK|
LAYOUT_SIDE_TOP)
passwd.text = "Password"
real = FXTextField.new(main, 20, nil, 0,
TEXTFIELD_REAL|FRAME_SUNKEN|
FRAME_THICK|LAYOUT_SIDE_TOP|
LAYOUT_FIX_HEIGHT, 0, 0, 0, 30)
real.text = "1.0E+3"
int = FXTextField.new(main, 20, nil, 0, TEXTFIELD_INTEGER|
FRAME_SUNKEN|FRAME_THICK|
LAYOUT_SIDE_TOP|LAYOUT_FIX_HEIGHT,
0, 0, 0, 30)
int.text = "1000"
Ниже показан простой способ ввода текста с помощью диалогового окна. В зависимости от выбранного метода можно будет вводить любой текст, только действительные или только целые числа.
puts FXInputDialog.getString("initial text",
self, "Диалог для ввода текст",
"Введите текст:", nil)
puts FXInputDialog.getInteger(1200, self,
"Диалог для ввода целого числа",
"Введите целое число:", nil)
puts FXInputDialog.getReal(1.03е7, self,
"Диалог для ввода числа в научной нотации",
"Введите действительное число:", nil)
Для экономии места мы не станем приводить полный текст приложения. Но, конечно, перед выводом диалогового окна необходимо выполнить обычную инициализацию.