fl — Библиотека FORMS для графических пользовательских интерфейсов
Устарело начиная с версии 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().
1. Функции, определенные в модуле 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) -
Отображает диалоговое окно с сообщением из трех строк и кнопкой «ОК».
-
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()для считывания события из очереди. Не используйте эквивалентные функции GL!
-
fl.color() -
fl.mapcolor() -
fl.getmcolor() -
См. описание в документации FORMS для
fl_color(),fl_mapcolor()иfl_getmcolor().
2. Объекты формы
Объекты формы (возвращаемые 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().
-
Добавить кнопку в форму. — Методы:
get_button(),set_button().
-
Добавить объект типа «кнопка светлая» в форму. — Методы:
get_button(),set_button().
-
Добавить объект типа «кнопка круглая» в форму. — Методы:
get_button(),set_button().
-
form.add_slider(type, x, y, w, h, name) -
Добавить ползунок в форму. — Методы:
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) -
Добавить объект типа «ползунок с метками» в форму. — Методы:
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) -
Добавить объект типа «циферблат» в форму. — Методы:
set_dial_value(),get_dial_value(),set_dial_bounds(),get_dial_bounds().
-
form.add_positioner(type, x, y, w, h, name) -
Добавить объект позиционера в форму. — Методы:
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) -
Добавить объект счётчика в форму. — Методы:
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) -
Добавить объект ввода в форму. — Методы:
set_input(),get_input(),set_input_color(),set_input_return().
-
Добавить объект меню в форму. — Методы:
set_menu(),get_menu(),addto_menu().
-
form.add_choice(type, x, y, w, h, name) -
Добавить объект выбора в форму. — Методы:
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) -
Добавить объект браузера в форму. — Методы:
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) -
Добавить объект таймера в форму. — Методы:
set_timer(),get_timer().
Объекты форм имеют следующие атрибуты данных; см. документацию FORMS:
Имя | Тип C | Значение |
|---|---|---|
| int (только для чтения) | ID окна GL |
| float | ширина формы |
| float | высота формы |
| float | начало координат X формы |
| float | начало координат Y формы |
| int | ненулевое значение, если форма деактивирована |
| int | ненулевое значение, если форма видима |
| int | ненулевое значение, если форма заморожена |
| int | ненулевое значение, если включен двойной буферизации |
3. Объекты форм
Помимо методов, специфичных для определённых типов объектов 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:
Имя | Тип C | Значение |
|---|---|---|
| int (только для чтения) | класс объекта |
int (только для чтения) | тип объекта | |
| int | тип рамки |
| float | начало координат X |
| float | начало координат Y |
| float | ширина |
| float | высота |
| int | первичный цвет |
| int | вторичный цвет |
| int | выравнивание |
| int | цвет метки |
| float | размер шрифта метки |
| строка | строка метки |
| int | стиль метки |
| int (только для чтения) | (см. справку FORMS) |
| int (только для чтения) | (см. справку FORMS) |
| int (только для чтения) | (см. справку FORMS) |
| int (только для чтения) | (см. справку FORMS) |
| int (только для чтения) | (см. справку FORMS) |
int (только для чтения) | (см. справку FORMS) | |
| int (только для чтения) | (см. справку FORMS) |
| int (только для чтения) | (см. справку FORMS) |
| int (только для чтения) | (см. справку FORMS) |
FL — Константы, используемые с модулем fl
Устарело начиная с версии 2.6: Модуль FL был удалён в Python 3.
Этот модуль определяет символические константы, необходимые для использования встроенного модуля fl (см. выше); они эквивалентны константам, определённым в файле заголовков C <forms.h>, за исключением того, что префикс имени FL_ опущен. Прочитайте исходный код модуля для получения полного списка определённых имён. Рекомендуемое использование:
import fl from FL import *
flp — Функции для загрузки сохранённых проектов форм
Устарело начиная с версии 2.6: Модуль flp был удалён в Python 3.
Этот модуль определяет функции, которые могут считывать определения форм, созданные программой «разработчик форм» (fdesign), которая входит в библиотеку FORMS (см. модуль fl выше).
Пока что, см. файл flp.doc в каталоге исходного кода Python-библиотеки для описания.
XXX Следует добавить полное описание!
© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/fl.html