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

fl.md

319 строк · 19.9 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/2.7/library/fl.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 39.4. [`fl`](https://python-all.ru/2.7/library/fl.html#module-fl) – библиотека FORMS для графических пользовательских интерфейсов89Устарело с версии 2.6: Модуль [`fl`](https://python-all.ru/2.7/library/fl.html#module-fl) удалён в Python 3.1011Этот модуль предоставляет интерфейс к библиотеке FORMS Марка Овермарса. Исходный код библиотеки можно получить анонимным FTP с хоста `ftp.cs.ruu.nl`, каталог `SGI/FORMS`. Последний раз он тестировался с версией 2.0b.1213Большинство функций являются буквальным переводом их C-эквивалентов, с опусканием начального `fl_` в имени. Константы, используемые библиотекой, определены в модуле [`FL`](https://python-all.ru/2.7/library/fl.html#module-FL), описанном ниже.1415Создание объектов в Python немного отличается от C: вместо «текущей формы», поддерживаемой библиотекой, к которой добавляются новые объекты FORMS, все функции, добавляющие объект FORMS в форму, являются методами объекта Python, представляющего форму. Следовательно, в Python нет аналогов для C-функций `fl_addto_form()` и `fl_end_form()`, а аналог `fl_bgn_form()` называется [`fl.make_form()`](https://python-all.ru/2.7/library/fl.html#fl.make_form).1617Остерегайтесь несколько запутанной терминологии: FORMS использует слово *объект* для кнопок, ползунков и т.п., которые можно размещать в форме. В Python «объект» означает любое значение. Интерфейс Python к FORMS вводит два новых типа объектов Python: объекты формы (представляющие всю форму) и объекты FORMS (представляющие одну кнопку, ползунок и т.д.). Надеюсь, это не слишком запутывает.1819В интерфейсе Python к FORMS нет «свободных объектов», а также нет простого способа добавить классы объектов, написанные на Python. Впрочем, интерфейс FORMS к обработке событий GL доступен, так что можно смешивать FORMS с чистыми окнами GL.2021**Пожалуйста, обратите внимание:** импорт [`fl`](https://python-all.ru/2.7/library/fl.html#module-fl) подразумевает вызов функции GL `foreground()` и процедуры FORMS `fl_init()`.2223## 39.4.1. Функции, определённые в модуле [`fl`](https://python-all.ru/2.7/library/fl.html#module-fl)2425Модуль [`fl`](https://python-all.ru/2.7/library/fl.html#module-fl) определяет следующие функции. Дополнительную информацию о том, что они делают, см. в описании эквивалентной C-функции в документации FORMS:2627#### `fl.make_form(type, width, height)`2829Создаёт форму с заданными типом, шириной и высотой. Возвращает *форму*, методы которой описаны ниже.3031#### `fl.do_forms()`3233Стандартный главный цикл FORMS. Возвращает объект Python, представляющий объект FORMS, требующий взаимодействия, или специальное значение `FL.EVENT`.3435#### `fl.check_forms()`3637Проверяет события FORMS. Возвращает то же, что [`do_forms()`](https://python-all.ru/2.7/library/fl.html#fl.do_forms) выше, или `None`, если нет события, требующего немедленного взаимодействия.3839#### `fl.set_event_call_back(function)`4041Устанавливает функцию обратного вызова для событий.4243#### `fl.set_graphics_mode(rgbmode, doublebuffering)`4445Устанавливает графические режимы.4647#### `fl.get_rgbmode()`4849Возвращает текущий режим RGB. Это значение глобальной переменной C `fl_rgbmode`.5051#### `fl.show_message(str1, str2, str3)`5253Показывает диалоговое окно с трёхстрочным сообщением и кнопкой OK.5455#### `fl.show_question(str1, str2, str3)`5657Показывает диалоговое окно с трёхстрочным сообщением и кнопками ДА и НЕТ. Возвращает `1`, если пользователь нажал ДА, и `0`, если НЕТ.5859#### `fl.show_choice(str1, str2, str3, but1[, but2[, but3]])`6061Показывает диалоговое окно с трёхстрочным сообщением и до трёх кнопок. Возвращает номер кнопки, нажатой пользователем (`1`, `2` или `3`).6263#### `fl.show_input(prompt, default)`6465Показывает диалоговое окно с однострочным сообщением-подсказкой и текстовым полем, в которое пользователь может ввести строку. Второй аргумент – строка ввода по умолчанию. Возвращает строковое значение, отредактированное пользователем.6667#### `fl.show_file_selector(message, directory, pattern, default)`6869Показывает диалоговое окно, в котором пользователь может выбрать файл. Возвращает абсолютное имя файла, выбранное пользователем, или `None`, если пользователь нажал «Отмена».7071#### `fl.get_directory()`7273#### `fl.get_pattern()`7475#### `fl.get_filename()`7677Эти функции возвращают каталог, шаблон и имя файла (только хвост), выбранные пользователем в последнем вызове [`show_file_selector()`](https://python-all.ru/2.7/library/fl.html#fl.show_file_selector).7879#### `fl.qdevice(dev)`8081#### `fl.unqdevice(dev)`8283#### `fl.isqueued(dev)`8485#### `fl.qtest()`8687#### `fl.qread()`8889#### `fl.qreset()`9091#### `fl.qenter(dev, val)`9293#### `fl.get_mouse()`9495#### `fl.tie(button, valuator1, valuator2)`9697Эти функции являются интерфейсами FORMS к соответствующим функциям GL. Используйте их, если требуется самостоятельно обрабатывать некоторые события GL при использовании `fl.do_events()`. Когда обнаружено событие GL, которое FORMS не может обработать, [`fl.do_forms()`](https://python-all.ru/2.7/library/fl.html#fl.do_forms) возвращает специальное значение `FL.EVENT`, и следует вызвать [`fl.qread()`](https://python-all.ru/2.7/library/fl.html#fl.qread) для чтения события из очереди. Не используйте eквивалентные функции GL!9899#### `fl.color()`100101#### `fl.mapcolor()`102103#### `fl.getmcolor()`104105Смотрите описание `fl_color()`, `fl_mapcolor()` и `fl_getmcolor()` в документации FORMS.106107## 39.4.2. Объекты форм108109Объекты форм (возвращаемые [`make_form()`](https://python-all.ru/2.7/library/fl.html#fl.make_form) выше) имеют следующие методы. Каждый метод соответствует C-функции, имя которой имеет префикс `fl_`; и первым аргументом которой является указатель на форму; за описаниями обращайтесь к официальной документации FORMS.110111Все методы `add_*()` возвращают объект Python, представляющий объект FORMS. Методы объектов FORMS описаны ниже. Большинство типов объектов FORMS также имеют некоторые методы, специфичные для данного типа; эти методы перечислены здесь.112113#### `form.show_form(placement, bordertype, name)`114115Показать форму.116117#### `form.hide_form()`118119Скрыть форму.120121#### `form.redraw_form()`122123Перерисовать форму.124125#### `form.set_form_position(x, y)`126127Установить положение формы.128129#### `form.freeze_form()`130131Заморозить форму.132133#### `form.unfreeze_form()`134135Разморозить форму.136137#### `form.activate_form()`138139Активировать форму.140141#### `form.deactivate_form()`142143Деактивировать форму.144145#### `form.bgn_group()`146147Начать новую группу объектов; возвращает объект группы.148149#### `form.end_group()`150151Завершить текущую группу объектов.152153#### `form.find_first()`154155Найти первый объект в форме.156157#### `form.find_last()`158159Найти последний объект в форме.160161#### `form.add_box(type, x, y, w, h, name)`162163Добавить объект-бокс в форму. Дополнительных методов нет.164165#### `form.add_text(type, x, y, w, h, name)`166167Добавить текстовый объект в форму. Дополнительных методов нет.168169#### `form.add_clock(type, x, y, w, h, name)`170171Добавить объект-часы в форму. – Метод: `get_clock()`.172173#### `form.add_button(type, x, y, w, h, name)`174175Добавить объект-кнопку в форму. – Методы: `get_button()`, `set_button()`.176177#### `form.add_lightbutton(type, x, y, w, h, name)`178179Добавить объект-световую кнопку в форму. – Методы: `get_button()`, `set_button()`.180181#### `form.add_roundbutton(type, x, y, w, h, name)`182183Добавляет объект roundbutton в форму. – Методы: `get_button()`, `set_button()`.184185#### `form.add_slider(type, x, y, w, h, name)`186187Добавляет объект 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()`.188189#### `form.add_valslider(type, x, y, w, h, name)`190191Добавляет объект 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()`.192193#### `form.add_dial(type, x, y, w, h, name)`194195Добавляет объект dial в форму. – Методы: `set_dial_value()`, `get_dial_value()`, `set_dial_bounds()`, `get_dial_bounds()`.196197#### `form.add_positioner(type, x, y, w, h, name)`198199Добавляет объект 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()`.200201#### `form.add_counter(type, x, y, w, h, name)`202203Добавляет объект counter в форму. – Методы: `set_counter_value()`, `get_counter_value()`, `set_counter_bounds()`, `set_counter_step()`, `set_counter_precision()`, `set_counter_return()`.204205#### `form.add_input(type, x, y, w, h, name)`206207Добавляет объект input в форму. – Методы: `set_input()`, `get_input()`, `set_input_color()`, `set_input_return()`.208209#### `form.add_menu(type, x, y, w, h, name)`210211Добавляет объект menu в форму. – Методы: `set_menu()`, `get_menu()`, `addto_menu()`.212213#### `form.add_choice(type, x, y, w, h, name)`214215Добавляет объект choice в форму. – Методы: `set_choice()`, `get_choice()`, `clear_choice()`, `addto_choice()`, `replace_choice()`, `delete_choice()`, `get_choice_text()`, `set_choice_fontsize()`, `set_choice_fontstyle()`.216217#### `form.add_browser(type, x, y, w, h, name)`218219Добавляет объект 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()`.220221#### `form.add_timer(type, x, y, w, h, name)`222223Добавляет объект timer в форму. – Методы: `set_timer()`, `get_timer()`.224225Объекты формы имеют следующие атрибуты данных; см. документацию FORMS:226227| Имя | Тип C | Значение |228| --- | --- | --- |229| `window` | int (только для чтения) | идентификатор окна GL |230| `w` | float | ширина формы |231| `h` | float | высота формы |232| `x` | float | начальная x-координата формы |233| `y` | float | начальная y-координата формы |234| `deactivated` | int | ненулевое значение, если форма деактивирована |235| `visible` | int | ненулевое значение, если форма видима |236| `frozen` | int | ненулевое значение, если форма заморожена |237| `doublebuf` | int | ненулевое значение, если включена двойная буферизация |238239## 39.4.3. Объекты FORMS240241Помимо методов, специфичных для конкретных типов объектов FORMS, все объекты FORMS также имеют следующие методы:242243#### `FORMS object.set_call_back(function, argument)`244245Устанавливает колбэк-функцию объекта и её аргумент. Когда объекту требуется взаимодействие, колбэк-функция вызывается с двумя аргументами: объектом и аргументом колбэка. (Объекты FORMS без колбэк-функции возвращаются функциями [`fl.do_forms()`](https://python-all.ru/2.7/library/fl.html#fl.do_forms) или [`fl.check_forms()`](https://python-all.ru/2.7/library/fl.html#fl.check_forms), когда им требуется взаимодействие.) Вызов этого метода без аргументов удаляет колбэк- функцию.246247#### `FORMS object.delete_object()`248249Удаляет объект.250251#### `FORMS object.show_object()`252253Показывает объект.254255#### `FORMS object.hide_object()`256257Скрывает объект.258259#### `FORMS object.redraw_object()`260261Перерисовывает объект.262263#### `FORMS object.freeze_object()`264265Замораживает объект.266267#### `FORMS object.unfreeze_object()`268269Размораживает объект.270271Объекты FORMS имеют следующие атрибуты данных; см. документацию FORMS:272273| Имя | Тип C | Значение |274| --- | --- | --- |275| `objclass` | int (только для чтения) | класс объекта |276| [`type`](https://python-all.ru/2.7/library/functions.html#type) | int (только для чтения) | тип объекта |277| `boxtype` | int | тип рамки |278| `x` | float | начальная координата x |279| `y` | float | начальная координата y |280| `w` | float | ширина |281| `h` | float | рост |282| `col1` | int | основной цвет |283| `col2` | int | вторичный цвет |284| `align` | int | выравнивание |285| `lcol` | int | цвет метки |286| `lsize` | float | размер шрифта метки |287| `label` | строка | строка метки |288| `lstyle` | int | стиль метки |289| `pushed` | int (только для чтения) | (см. документацию FORMS) |290| `focus` | int (только для чтения) | (см. документацию FORMS) |291| `belowmouse` | int (только для чтения) | (см. документацию FORMS) |292| `frozen` | int (только для чтения) | (см. документацию FORMS) |293| `active` | int (только для чтения) | (см. документацию FORMS) |294| [`input`](https://python-all.ru/2.7/library/functions.html#input) | int (только для чтения) | (см. документацию FORMS) |295| `visible` | int (только для чтения) | (см. документацию FORMS) |296| `radio` | int (только для чтения) | (см. документацию FORMS) |297| `automatic` | int (только для чтения) | (см. документацию FORMS) |298299# 39.5. [`FL`](https://python-all.ru/2.7/library/fl.html#module-FL) – Константы, используемые с модулем [`fl`](https://python-all.ru/2.7/library/fl.html#module-fl)300301Устарело с версии 2.6: Модуль [`FL`](https://python-all.ru/2.7/library/fl.html#module-FL) удалён в Python 3.302303Этот модуль определяет символьные константы, необходимые для использования встроенного модуля [`fl`](https://python-all.ru/2.7/library/fl.html#module-fl) (см. выше); они эквивалентны определённым в заголовочном файле C `<forms.h>`, за исключением того, что префикс имени `FL_` опущен. Для получения полного списка определённых имён обратитесь к исходному коду модуля. Рекомендуемое использование:304305```python306import fl307from FL import *308```309310# 39.6. [`flp`](https://python-all.ru/2.7/library/fl.html#module-flp) – Функции для загрузки сохранённых макетов FORMS311312Устарело с версии 2.6: Модуль [`flp`](https://python-all.ru/2.7/library/fl.html#module-flp) удалён в Python 3.313314Этот модуль определяет функции, которые могут читать определения форм, созданные программой «form designer» (**fdesign**), входящей в состав библиотеки FORMS (см. модуль [`fl`](https://python-all.ru/2.7/library/fl.html#module-fl) выше).315316Пока что обратитесь к файлу `flp.doc` в каталоге исходных кодов библиотеки Python для получения описания.317318XXX Здесь должно быть вставлено полное описание!319