39.4. fl —グラフィカルユーザーインターフェイス用のFORMSライブラリ—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/2.7/library/fl
移動先:案内検索

39.4。 fl —グラフィカルユーザーインターフェイス用のFORMSライブラリ

バージョン2.6以降非推奨: fl モジュールはPython3で削除されました。


このモジュールは、MarkOvermarsによるFORMSライブラリへのインターフェイスを提供します。 ライブラリのソースは、匿名FTPによってホストftp.cs.ruu.nl、ディレクトリSGI/FORMSから取得できます。 最後にバージョン2.0bでテストされました。

ほとんどの関数は、同等のCの直訳であり、名前から最初のfl_を削除しています。 ライブラリで使用される定数は、以下で説明するモジュール FL で定義されています。

オブジェクトの作成は、PythonとCで少し異なります。新しいFORMSオブジェクトが追加されるライブラリによって維持される「現在のフォーム」の代わりに、FORMSオブジェクトをフォームに追加するすべての関数は、Pythonオブジェクトを表すメソッドです。フォーム。 したがって、C関数fl_addto_form()およびfl_end_form()に相当するPythonはなく、fl_bgn_form()に相当するものは fl.make_form()と呼ばれます。

やや紛らわしい用語に注意してください。FORMSでは、ボタンやスライダーなどにオブジェクトという単語を使用しています。 フォームに配置できます。 Pythonでは、「オブジェクト」は任意の値を意味します。 FORMSへのPythonインターフェイスでは、フォームオブジェクト(フォーム全体を表す)とFORMSオブジェクト(1つのボタン、スライダーなどを表す)の2つの新しいPythonオブジェクトタイプが導入されています。 うまくいけば、これはあまり混乱していません。

FORMSへのPythonインターフェースには「フリーオブジェクト」はなく、Pythonで記述されたオブジェクトクラスを追加する簡単な方法もありません。 ただし、GLイベント処理へのFORMSインターフェイスは使用可能であるため、FORMSを純粋なGLウィンドウと混在させることができます。

注意: fl をインポートすると、GL関数foreground()およびFORMSルーチンfl_init()が呼び出されます。

39.4.1。 モジュールで定義された関数 fl

モジュール fl は、次の関数を定義します。 それらの機能の詳細については、FORMSドキュメントの同等のC関数の説明を参照してください。

fl.make_form(type, width, height)
指定されたタイプ、幅、高さのフォームを作成します。 これにより、 form オブジェクトが返されます。このオブジェクトのメソッドについては、以下で説明します。
fl.do_forms()
標準のFORMSメインループ。 相互作用が必要なFORMSオブジェクトを表すPythonオブジェクト、または特別な値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)
3行のメッセージと[OK]ボタンのあるダイアログボックスを表示します。
fl.show_question(str1, str2, str3)
3行のメッセージと[はい]ボタンと[いいえ]ボタンのあるダイアログボックスを表示します。 ユーザーがYESを押した場合は1を返し、NOを押した場合は0を返します。
fl.show_choice(str1, str2, str3, but1[, but2[, but3]])
3行のメッセージと最大3つのボタンを含むダイアログボックスを表示します。 ユーザーがクリックしたボタンの番号(12、または3)を返します。
fl.show_input(prompt, default)
ユーザーが文字列を入力できる1行のプロンプトメッセージとテキストフィールドを含むダイアログボックスを表示します。 2番目の引数はデフォルトの入力文字列です。 ユーザーが編集した文字列値を返します。
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)

これらの関数は、対応するGL関数へのFORMSインターフェイスです。 fl.do_events()を使用するときにいくつかのGLイベントを自分で処理する場合は、これらを使用します。 FORMSが処理できないGLイベントが検出されると、 fl.do_forms()は特別な値FL.EVENTを返します。そのため、 fl.qread()を呼び出してキューからのイベント。 同等のGL関数を使用しないでください!
fl.color()

fl.mapcolor()
fl.getmcolor()

fl_color()fl_mapcolor()、およびfl_getmcolor()のFORMSドキュメントの説明を参照してください。


39.4.2。 フォームオブジェクト

フォームオブジェクト(上記の make_form()によって返される)には、次のメソッドがあります。 各メソッドは、名前の前にfl_が付いているC関数に対応しています。 そして、その最初の引数はフォームポインタです。 説明については、公式のFORMSドキュメントを参照してください。

すべてのadd_*()メソッドは、FORMSオブジェクトを表すPythonオブジェクトを返します。 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()、 [X82X ]、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()、 [X82X ]、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()、 [X82X ]、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()、 [X82X ]、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()、 [X82X ]、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(読み取り専用) GLウィンドウID
w 浮く フォーム幅
h 浮く フォームの高さ
x 浮く フォームx原点
y 浮く フォームyの原点
deactivated int フォームが非アクティブ化されている場合はゼロ以外
visible int フォームが表示されている場合はゼロ以外
frozen int フォームがフリーズしている場合はゼロ以外
doublebuf int ダブルバッファリングがオンの場合はゼロ以外


39.4.3。 FORMSオブジェクト

特定の種類のFORMSオブジェクトに固有のメソッドに加えて、すべてのFORMSオブジェクトには次のメソッドもあります。

FORMS object.set_call_back(function, argument)
オブジェクトのコールバック関数と引数を設定します。 オブジェクトが相互作用を必要とする場合、コールバック関数は、オブジェクトとコールバック引数の2つの引数を使用して呼び出されます。 (コールバック関数のない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 浮く x原点
y 浮く y起源
w 浮く
h 浮く 身長
col1 int 原色
col2 int 二次色
align int アラインメント
lcol int ラベルの色
lsize 浮く ラベルのフォントサイズ
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 —で使用される定数 fl モジュール

バージョン2.6以降非推奨: FL モジュールはPython3で削除されました。


このモジュールは、組み込みモジュール fl (上記を参照)を使用するために必要なシンボリック定数を定義します。 これらは、名前プレフィックスFL_が省略されていることを除いて、Cヘッダーファイル<forms.h>で定義されているものと同等です。 定義された名前の完全なリストについては、モジュールソースをお読みください。 提案した使用:

import fl
from FL import *

39.6。 flp —保存されたFORMSデザインをロードするための関数

バージョン2.6以降非推奨: flp モジュールはPython3で削除されました。


このモジュールは、FORMSライブラリに付属する「フォームデザイナ」( fdesign )プログラムによって作成されたフォーム定義を読み取ることができる関数を定義します(上記のモジュール fl を参照)。

今のところ、説明については、Pythonライブラリのソースディレクトリにあるファイルflp.docを参照してください。

XXX完全な説明をここに挿入する必要があります!