39.4. fl —グラフィカルユーザーインターフェイス用のFORMSライブラリ—Pythonドキュメント
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つのボタンを含むダイアログボックスを表示します。 ユーザーがクリックしたボタンの番号(
1
、2
、または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完全な説明をここに挿入する必要があります!