Документация Python неофициальный перевод
Содержание страницы

39.4. fl – библиотека FORMS для графических пользовательских интерфейсовfl – FORMS library for graphical user interfaces

Устарело с версии 2.6: Модуль fl удалён в Python 3.

Этот модуль предоставляет интерфейс к библиотеке FORMS Марка Овермарса. Исходный код библиотеки можно получить анонимным FTP с хоста ftp.cs.ruu.nl, каталог SGI/FORMS. Последний раз он тестировался с версией 2.0b.

Большинство функций являются буквальным переводом их C-эквивалентов, с опусканием начального fl_ в имени. Константы, используемые библиотекой, определены в модуле FL, описанном ниже.

Создание объектов в Python немного отличается от C: вместо «текущей формы», поддерживаемой библиотекой, к которой добавляются новые объекты FORMS, все функции, добавляющие объект FORMS в форму, являются методами объекта Python, представляющего форму. Следовательно, в Python нет аналогов для C-функций fl_addto_form() и fl_end_form(), а аналог fl_bgn_form() называется fl.make_form().

Остерегайтесь несколько запутанной терминологии: FORMS использует слово объект для кнопок, ползунков и т.п., которые можно размещать в форме. В Python «объект» означает любое значение. Интерфейс Python к FORMS вводит два новых типа объектов Python: объекты формы (представляющие всю форму) и объекты FORMS (представляющие одну кнопку, ползунок и т.д.). Надеюсь, это не слишком запутывает.

В интерфейсе Python к FORMS нет «свободных объектов», а также нет простого способа добавить классы объектов, написанные на Python. Впрочем, интерфейс FORMS к обработке событий GL доступен, так что можно смешивать FORMS с чистыми окнами GL.

Пожалуйста, обратите внимание: импорт fl подразумевает вызов функции GL foreground() и процедуры FORMS fl_init().

39.4.1. Функции, определённые в модуле flFunctions Defined in Module fl

Модуль fl определяет следующие функции. Дополнительную информацию о том, что они делают, см. в описании эквивалентной C-функции в документации FORMS:

fl.make_form(type, width, height)

Создаёт форму с заданными типом, шириной и высотой. Возвращает форму, методы которой описаны ниже.

fl.do_forms()

Стандартный главный цикл FORMS. Возвращает объект Python, представляющий объект FORMS, требующий взаимодействия, или специальное значение FL.EVENT.

fl.check_forms()

Проверяет события FORMS. Возвращает то же, что do_forms() выше, или None, если нет события, требующего немедленного взаимодействия.

fl.set_event_call_back(function)

Устанавливает функцию обратного вызова для событий.

fl.set_graphics_mode(rgbmode, doublebuffering)

Устанавливает графические режимы.

fl.get_rgbmode()

Возвращает текущий режим RGB. Это значение глобальной переменной C fl_rgbmode.

fl.show_message(str1, str2, str3)

Показывает диалоговое окно с трёхстрочным сообщением и кнопкой OK.

fl.show_question(str1, str2, str3)

Показывает диалоговое окно с трёхстрочным сообщением и кнопками ДА и НЕТ. Возвращает 1, если пользователь нажал ДА, и 0, если НЕТ.

fl.show_choice(str1, str2, str3, but1[, but2[, but3]])

Показывает диалоговое окно с трёхстрочным сообщением и до трёх кнопок. Возвращает номер кнопки, нажатой пользователем (1, 2 или 3).

fl.show_input(prompt, default)

Показывает диалоговое окно с однострочным сообщением-подсказкой и текстовым полем, в которое пользователь может ввести строку. Второй аргумент – строка ввода по умолчанию. Возвращает строковое значение, отредактированное пользователем.

fl.show_file_selector(message, directory, pattern, default)

Показывает диалоговое окно, в котором пользователь может выбрать файл. Возвращает абсолютное имя файла, выбранное пользователем, или None, если пользователь нажал «Отмена».

fl.get_directory()
fl.get_pattern()
fl.get_filename()

Эти функции возвращают каталог, шаблон и имя файла (только хвост), выбранные пользователем в последнем вызове show_file_selector().

fl.qdevice(dev)
fl.unqdevice(dev)
fl.isqueued(dev)
fl.qtest()
fl.qread()
fl.qreset()
fl.qenter(dev, val)
fl.get_mouse()
fl.tie(button, valuator1, valuator2)

Эти функции являются интерфейсами FORMS к соответствующим функциям GL. Используйте их, если требуется самостоятельно обрабатывать некоторые события GL при использовании fl.do_events(). Когда обнаружено событие GL, которое FORMS не может обработать, fl.do_forms() возвращает специальное значение FL.EVENT, и следует вызвать fl.qread() для чтения события из очереди. Не используйте eквивалентные функции GL!

fl.color()
fl.mapcolor()
fl.getmcolor()

Смотрите описание fl_color(), fl_mapcolor() и fl_getmcolor() в документации FORMS.

39.4.2. Объекты формForm Objects

Объекты форм (возвращаемые make_form() выше) имеют следующие методы. Каждый метод соответствует C-функции, имя которой имеет префикс fl_; и первым аргументом которой является указатель на форму; за описаниями обращайтесь к официальной документации FORMS.

Все методы add_*() возвращают объект Python, представляющий объект FORMS. Методы объектов FORMS описаны ниже. Большинство типов объектов FORMS также имеют некоторые методы, специфичные для данного типа; эти методы перечислены здесь.

form.show_form(placement, bordertype, name)

Показать форму.

form.hide_form()

Скрыть форму.

form.redraw_form()

Перерисовать форму.

form.set_form_position(x, y)

Установить положение формы.

form.freeze_form()

Заморозить форму.

form.unfreeze_form()

Разморозить форму.

form.activate_form()

Активировать форму.

form.deactivate_form()

Деактивировать форму.

form.bgn_group()

Начать новую группу объектов; возвращает объект группы.

form.end_group()

Завершить текущую группу объектов.

form.find_first()

Найти первый объект в форме.

form.find_last()

Найти последний объект в форме.

form.add_box(type, x, y, w, h, name)

Добавить объект-бокс в форму. Дополнительных методов нет.

form.add_text(type, x, y, w, h, name)

Добавить текстовый объект в форму. Дополнительных методов нет.

form.add_clock(type, x, y, w, h, name)

Добавить объект-часы в форму. – Метод: get_clock().

form.add_button(type, x, y, w, h, name)

Добавить объект-кнопку в форму. – Методы: get_button(), set_button().

form.add_lightbutton(type, x, y, w, h, name)

Добавить объект-световую кнопку в форму. – Методы: get_button(), set_button().

form.add_roundbutton(type, x, y, w, h, name)

Добавляет объект roundbutton в форму. – Методы: get_button(), set_button().

form.add_slider(type, x, y, w, h, name)

Добавляет объект slider в форму. – Методы: set_slider_value(), get_slider_value(), set_slider_bounds(), get_slider_bounds(), set_slider_return(), set_slider_size(), set_slider_precision(), set_slider_step().

form.add_valslider(type, x, y, w, h, name)

Добавляет объект valslider в форму. – Методы: set_slider_value(), get_slider_value(), set_slider_bounds(), get_slider_bounds(), set_slider_return(), set_slider_size(), set_slider_precision(), set_slider_step().

form.add_dial(type, x, y, w, h, name)

Добавляет объект dial в форму. – Методы: set_dial_value(), get_dial_value(), set_dial_bounds(), get_dial_bounds().

form.add_positioner(type, x, y, w, h, name)

Добавляет объект positioner в форму. – Методы: set_positioner_xvalue(), set_positioner_yvalue(), set_positioner_xbounds(), set_positioner_ybounds(), get_positioner_xvalue(), get_positioner_yvalue(), get_positioner_xbounds(), get_positioner_ybounds().

form.add_counter(type, x, y, w, h, name)

Добавляет объект counter в форму. – Методы: set_counter_value(), get_counter_value(), set_counter_bounds(), set_counter_step(), set_counter_precision(), set_counter_return().

form.add_input(type, x, y, w, h, name)

Добавляет объект input в форму. – Методы: set_input(), get_input(), set_input_color(), set_input_return().

form.add_menu(type, x, y, w, h, name)

Добавляет объект menu в форму. – Методы: set_menu(), get_menu(), addto_menu().

form.add_choice(type, x, y, w, h, name)

Добавляет объект choice в форму. – Методы: set_choice(), get_choice(), clear_choice(), addto_choice(), replace_choice(), delete_choice(), get_choice_text(), set_choice_fontsize(), set_choice_fontstyle().

form.add_browser(type, x, y, w, h, name)

Добавляет объект browser в форму. – Методы: set_browser_topline(), clear_browser(), add_browser_line(), addto_browser(), insert_browser_line(), delete_browser_line(), replace_browser_line(), get_browser_line(), load_browser(), get_browser_maxline(), select_browser_line(), deselect_browser_line(), deselect_browser(), isselected_browser_line(), get_browser(), set_browser_fontsize(), set_browser_fontstyle(), set_browser_specialkey().

form.add_timer(type, x, y, w, h, name)

Добавляет объект timer в форму. – Методы: set_timer(), get_timer().

Объекты формы имеют следующие атрибуты данных; см. документацию FORMS:

Имя

Тип C

Значение

window

int (только для чтения)

идентификатор окна GL

w

float

ширина формы

h

float

высота формы

x

float

начальная x-координата формы

y

float

начальная y-координата формы

deactivated

int

ненулевое значение, если форма деактивирована

visible

int

ненулевое значение, если форма видима

frozen

int

ненулевое значение, если форма заморожена

doublebuf

int

ненулевое значение, если включена двойная буферизация

39.4.3. Объекты FORMSFORMS Objects

Помимо методов, специфичных для конкретных типов объектов FORMS, все объекты FORMS также имеют следующие методы:

FORMS object.set_call_back(function, argument)

Устанавливает колбэк-функцию объекта и её аргумент. Когда объекту требуется взаимодействие, колбэк-функция вызывается с двумя аргументами: объектом и аргументом колбэка. (Объекты FORMS без колбэк-функции возвращаются функциями fl.do_forms() или fl.check_forms(), когда им требуется взаимодействие.) Вызов этого метода без аргументов удаляет колбэк- функцию.

FORMS object.delete_object()

Удаляет объект.

FORMS object.show_object()

Показывает объект.

FORMS object.hide_object()

Скрывает объект.

FORMS object.redraw_object()

Перерисовывает объект.

FORMS object.freeze_object()

Замораживает объект.

FORMS object.unfreeze_object()

Размораживает объект.

Объекты FORMS имеют следующие атрибуты данных; см. документацию FORMS:

Имя

Тип C

Значение

objclass

int (только для чтения)

класс объекта

type

int (только для чтения)

тип объекта

boxtype

int

тип рамки

x

float

начальная координата x

y

float

начальная координата y

w

float

ширина

h

float

рост

col1

int

основной цвет

col2

int

вторичный цвет

align

int

выравнивание

lcol

int

цвет метки

lsize

float

размер шрифта метки

label

строка

строка метки

lstyle

int

стиль метки

pushed

int (только для чтения)

(см. документацию FORMS)

focus

int (только для чтения)

(см. документацию FORMS)

belowmouse

int (только для чтения)

(см. документацию FORMS)

frozen

int (только для чтения)

(см. документацию FORMS)

active

int (только для чтения)

(см. документацию FORMS)

input

int (только для чтения)

(см. документацию FORMS)

visible

int (только для чтения)

(см. документацию FORMS)

radio

int (только для чтения)

(см. документацию FORMS)

automatic

int (только для чтения)

(см. документацию FORMS)

39.5. FL – Константы, используемые с модулем flFL – Constants used with the fl module

Устарело с версии 2.6: Модуль FL удалён в Python 3.

Этот модуль определяет символьные константы, необходимые для использования встроенного модуля fl (см. выше); они эквивалентны определённым в заголовочном файле C <forms.h>, за исключением того, что префикс имени FL_ опущен. Для получения полного списка определённых имён обратитесь к исходному коду модуля. Рекомендуемое использование:

import fl
from FL import *

39.6. flp – Функции для загрузки сохранённых макетов FORMSflp – Functions for loading stored FORMS designs

Устарело с версии 2.6: Модуль flp удалён в Python 3.

Этот модуль определяет функции, которые могут читать определения форм, созданные программой «form designer» (fdesign), входящей в состав библиотеки FORMS (см. модуль fl выше).

Пока что обратитесь к файлу flp.doc в каталоге исходных кодов библиотеки Python для получения описания.

XXX Здесь должно быть вставлено полное описание!