Spec-Zone.ru › Python 2.7

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().

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)

Добавить объект типа «кнопка круглая» в форму. — Методы: 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().

END_OF_DOCUMENT_MARKER
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().

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

Добавить объект меню в форму. — Методы: 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

Значение

window

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

ID окна GL

w

float

ширина формы

h

float

высота формы

x

float

начало координат X формы

y

float

начало координат Y формы

deactivated

int

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

visible

int

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

frozen

int

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

doublebuf

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

Значение

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)

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API