Wウィジェットリファレンス


この文書は、Dr. Corran WebsterさんによるW Widgetsの"W Reference"(http://www.nevada.edu/~cwebster/Python/WWidgets/Wreference.html)を訳したものです。
訳の公開に快く承諾してくださったDr. Corran Websterさんに感謝いたします。
内容の理解が伴っていないので、おかしいところがあるかもしれません。お気づきの点がございましたら、わたしまでお知らせいただければ幸いです。


Wウィジェット
Wウィジェットを使う / Wウィジェットリファレンス
ウィジェットの一般的な引数 / バインディング / ウィジェットの抽象クラス / ウィジェットの具体クラス(concrete class) / Menubar と Menu クラス

このセクションではWウィジェットモジュールの最も重要なクラストメソッドについて説明します。(XXX 不完全なところもあります-しかしメインのウィジェットの部分についてはできています)

広いとは言いませんが、おそらくよく使うであろうという部分を説明しています。より詳しくハッキングするなら、ソースを見る必要があるでしょう。

ウィジェットの一般的な引数

ほとんどのウィジェットに、説明すべきたくさんの引数があります:

possize
これは以下のどれかです:
  1. タプル (l, t, r, b):
    • lはウィジェットの左端の場所を示します:もし負でなければ親ウィジェットの左端からの距離をピクセル単位で示します。もし負なら、親ウィジェットの右端からの距離をピクセル単位で示します。
    • tはウィジェットの上端の場所を示します:もし負でなければ親ウィジェットの上端からの距離をピクセル単位で示します。もし負なら、親ウィジェットの下端からの距離をピクセル単位で示します。
    • rはウィジェットの右端の場所を示します:もし正ならウィジェットの幅を示します。もし負なら、親ウィジェットの右端からの距離をピクセル単位で示します。
    • bはウィジェットの下端の場所を示します:もし正ならウィジェットの高さを示します。もし負なら、親ウィジェットの下端からの距離をピクセル単位で示します。
    これらの値を注意して選んで、ウィジェットにいろいろ便利な働きを自動的にさせることができます。
  2. 親ウィジェットの幅と高さを引数とする関数で、ウィジェットと境を接する矩形を返すもの。
  3. ある場合(ウィンドウクラス、リサイズメソッドなど)には、タプル (w, h) が幅と高さとして解釈され、位置が自動的に設定されます。
title
文字列。ウィンドウ、ボタンなどのウィジェットではこの文字列がウィジェット内に表示されます。
callback
関数。何をするか、いつ呼び出されるかは、ウィジェットの種類によります;たいてい、ボタンがクリックされた時のように、ウィジェットにとってもっとも有効なイベントに反応して呼び出されます。
color, backgroundcolor
カラーのRGB特性で示される3つの数字のタプル。
fontsettings
これは以下のうちのひとつ。Noneならウィンドウのフォントが使用され、 (font, style, size, color) では、fontはフォント名、styleはテキストで使用されるスタイルのフラグ(QuickDrawモジュールの始めにリストがあります)、sizeはフォントサイズのポイント数、colorは上で述べたタプル。

バインディング

[control][cmd][shift]char

ユーザの押すキー。コントロール、コマンドあるいはシフトキーで修飾されます。charは、修飾キーが押された後に実際に押される文字;shiftcでなくshiftC。あるキーはもっと親しみのある文字に翻訳される。例えば、returnreturnkeyと呼ばれ、矢印キーはページアップ/ダウンと呼ばれます。完全なリストはWkeysモジュールにあります。

コールバックは実際の文字を受け取り、アプリケーションのメインループから元のイベントレコードを受け取ります。

<key>

ユーザがキーを、多くの場合修飾キーとともに押すこと。

コールバックは実際の文字を受け取り、アプリケーションのメインループから元のイベントレコードを受け取ります。もし、コールバックが1を返したら、アプリケーションはそれ以上イベントを伝えない。これで、あるキー入力をブロックしたり、修飾したりできます。

<click>

ユーザがウィジェット内でクリックすること。

コールバックはクリックが発生した場所と、押された修飾キーを受け取る。コールバックが1を返したら、アプリケーションはそれ以上イベントを伝えません。

<idle>

アプリケーションがアイドリングしています。ウィジェットはこのイベントを、カーソル点滅のように定期的に送ります。

コールバックは何も引数を受け取りません。もしコールバックが1を返したら、アプリケーションはそれ以上イベントを伝えません。

<select>

ウィジェットがアクティブウィンドウで選択される、あるいは選択解除されること。

もしコールバックがウィンドウにバインドされていたら、新しいアクティブウィジェットに送られます。コールバックがウィジェットにバインドされていたら、ウィジェットが選択された、あるいは解除されたかによって1あるいは0が送られます。もしコールバックが1を返したら、それ以上の処理はブロックされ、ウィジェットは選択を拒否することができ、あるいはウィンドウがアクティブウィンドウの変更をブロックできます。

ウィジェットの抽象クラス

Widget / ClickableWidget / SelectableWidget / ControlWidget

ウィジェットの抽象クラスは、直接インスタンス化するのでなく、サブクラスを作るために設計されています。これらには共通の便利な機能があります。

Widget (possize)

ウィジェットは全てのWウィジェットの起源となる基底クラス(ベースクラス)です。

ウィジェットには以下のメソッドがあります。

show(onoff)
これはonoffの値によってウィジェットを表示したり隠したりします。ウィジェットのサブウィジェットも全て隠します。
getpossize()
現在のpossizeの値を返します。
getbounds()
現在ウィジェットがバインドしている矩形を返します。
move(x [, y = None])
ウィジェットの左上角をxyに変更します。
rmove(deltax [, deltay = None])
ウィジェットの左上角をdeltaxdeltayだけ動かします。
resize(possize)
ウィジェットの位置/サイズをpossizeへ変更します。possizeはタプルあるいはタプルの記載にしたがった引数です。
open()
ウィジェットを開きます。
bind(key, callback)
コールバックをキー入力あるいはイベントにバインドします。もしcallbackがfalseなら、現在のバインドを削除します。
forall(methodname [, *args])
forall_butself(methodname [, *args])
forall_frombottom(methodname [, *args])
これら3つのメソッドはサブウィジェットにくり返し引数*argsmethodnameに適用します。最初にキーにバインドされた'<methodname>'を探し、次にmethodnameの名前を持つ実際のメソッドを探します。forallはおのおののサブウィジェットについてforallを呼び出し、自分自身にmethodnameを適用します(つまり、先順横断?)。forall_frombottomは最初に自分自身にmethodnameを適用し、それからサブウィジェットにforall_frombottomを呼び出します(つまり、後順横断?)。forall_butselfは、サブウィジェットがあればおのおのにforallを呼び出しますが、現在のウィジェットにはmethodnameを適用しません。
Widget also provides __setattr__, __delattr__, __setitem__, __getitem__および__delitem__メソッドはサブウィジェットの処理を容易にします。 __setitem__, __getitem__とand __delitem__はウィジェットのサブウィジェットディクショナリに直接影響を与えます。 __setattr__およびand __delattr__Widgetインスタンスをウィジェットのサブウィジェットディクショナリに変換します。

ウィジェットのサブクラスを作る時に、メソッドをオーバーライドしたくなるかもしれません:

click(point, modifiers)
これはウィジェットの中でクリックされると呼び出されます。なんらかの方法でウィジェットを クリックに応答させたいなら、これを使うべきです。
draw([visRgn = None])
これはウィジェットを描画する必要がある時に呼び出されます。visRgnは 可視的なウィンドウの区画を示し、不要な描画を避けることができます。
test(point)
これはウィジェット内に、ある点があるかどうかを調べるために呼び出されます。 標準的な動作としては、点がウィジェットの囲む矩形の中にあるとtrueを返します。ウィジェットが一般的でない形をしていたら、これを修正できるでしょう。
close()
これは、ウィジェットが消去されると呼び出されます。循環参照を含むようなどんな新しいインスタンス変数を定義しても、必ず削除するようにしてください。そうすればPythonはウィジェットの使用しているメモリを解放することができます。

ベースクラスであるウィジェットクラスには存在しないメソッドがいくつかありますが、もしも加えたらWウィジェットの他の部分にフックします。

rollover(onoff)
アイドル時にウィジェットの中や外へマウスを動かすと、その親ウィンドウがrolloverメソッドを発生させます。変数onoffは、マウスポインタが入ってきたら1、出ていったら0です。(XXX 実際には、マウスがウィジェットの上にある間、くり返しonoffが0次に1で呼び出されます-注意してください。ソースのコメントによると、これは望んでそうなっているのではありません...)
ClickableWidget (possize)

ClickableWidgetはクリックに反応するウィジェットのベースクラスです。

ClickableWidgetは、Widgetのサブクラスです。これはさらに以下のメソッドを定義しています:

enable(onoff)
これは、onoffの値によってClickableWidgetの作動をオンあるいはオフにします。 ClickableWidgetをオフにすると、クリックに反応しません。
callback()
これは、ウィジェットがクリックされると呼び出されるコールバックを、ラップします。
SelectableWidget (possize)

SelectableWidgetはキーボードフォーカスを受け付けることのできるウィジェットのベースクラスです。

SelectableWidgetWidgetのサブクラスです。これはさらに以下のメソッドを定義しています:

select(onoff [, isclick = 0])
これは、onoffの値によって、キーボードフォーカスでSelectableWidgetを選択したり、解除したりします。もし、ウィジェットがマウスクリックで選択されたとしたら、isclickはtrueになります。もしウィジェットが'<select>'にバインドされたコールバックを持っていたら、このメソッドで呼び出されます。もしウィジェットが何かの理由で選択されないなら、コールバックは1を返すべきでしょう。
drawselframe(onoff)
これは、onoffの値によって、ウィジェットのまわりの矩形を描画したり消去したりします。自動的には呼び出されず、親ウィンドウにとって不適切なら描画されません。

もしSelectableWidgetからクラスを継承するなら、たいてい以下のメソッドをオーバーライドしたいでしょう。

key(char, event)
これは、ウィジェットが選択されてキーが押された時、呼び出されます(イベントがアプリケーション、フロントウィンドウ、あるいはウィジェットの中でバインドされているキーによって横取りされないと仮定します)。charは押される実際の文字で、eventEvt.GetNextEventによって本来返されるイベントのタプルです。このメソッドは標準のキー操作に使われるでしょう;コマンドとなるキーイベントにコールバックをバインドすることが(キーのイベントを無視するために、あるいは、コマンドキーがあるかどうかをmodifiers & Events.cmdKeyがtrueかどうかで調べることができるような特別なキーの場合に)、よく行われます。
ControlWidget (possize [, title = "Control", procID = 0, callback = None, value = 0, min = 0, max = 0])

ControlWidgetは標準のMacintoshのコントロール、例えばボタンやスクロールバーをラップするのに使われる抽象クラスです。

procIDはMacintosh toolboxのcontrol IDで、それはControlsモジュールの中に記述されています。valueはcontrolの初期値で、minはcontrolが取り得る最小値、maxは最大値です。ControlWidgetClickableWidgetWidgetのサブクラスで、これらのメソッドを継承しています。さらに、以下のメソッドを持っています:

open()
これは、ウィジェットを開き、Ctl.NewControlへの呼び出しを通じて、裏に潜むMacintosh controlを作成します。
enable(onoff)
これは、onoffの値によって、ControlWidgetの作動をオンあるいはオフにします。オフにされたControlWidgetはクリックに反応しません。
これは、親ウィンドウがアクティベートあるいはディアクティベートされると呼び出されます。onoffの値によって、どちらのイベントが起こったかをウィジェットに伝えます。
settitle(title)
これは、ControlWidgetのタイトルをtitleに設定します。これはウィジェットの外観を変えるかもしれません。
gettitle()
これは、ControlWidgetの現在のタイトルである文字列を返します。

もし、何か他のMacintosh control(System8で標準になったものがかなりたくさんあります)に基づいて新しいウィジェットを作りたいなら、ControlWidgetのサブクラスが必要になることも考えられます。もしそうするなら、作成したサブクラスの__init__メソッドの中でControlWidget.__init__を適切なProcIDvalueminmaxとともに慎重に呼び出してください。これらの変数がどのように使われているか、Inside Macintoshを参照してください。さらに、以下のメソッドをオーバーライドする必要があるかもしれません:

click(point, modifiers)
これは、ウィジェットの中でクリックが起こると呼び出されます。デフォルトの動作では、Ctl.TrackControlを呼び出します。そしてもしそれがtrueを返したら、コールバックが存在する場合はコールバックを呼び出します。controlの状態を追跡するように設定したインスタンス変数がある時、あるいはいくつかの要素からなる複雑なcontrolがある場合には、このメソッドをオーバーライドする必要があるでしょう。

Widgetの具体クラス(concrete class)

Controls / Popup Menus / Static Graphics / Groups / Text / Windows

ウィジェットの具体クラス(concrete class)は、そのままの形で作られ、使われるもののことです。

Controlウィジェットクラス

これらは、いろいろな標準Macintosh controlに基づくラッパーです。

Button (possize [, title = "", callback = None])

これは、Macintoshの標準的なプッシュボタンを作ります。

titleは、ボタンのテキストとして使われ、ウィンドウフォントで表示されます。callbackは、ボタンがenable状態でクリックされた時に呼び出されます;引数は取りません。

ButtonControlWidgetClickableWidgetWidgetのサブクラスです。それらのメソッドに加えて、Buttonには以下のメソッドがあります:

push()
これは、ユーザによるボタン上でのクリックをシミュレートします。cmmand+キーをバインドするのに適しています。

各ウィンドウではデフォルトボタンが設定され、厚い縁取りがされることがあります。これは、親ウィンドウで設定されます。

CheckBox (possize [, title = "Checkbox", callback = None, value = 0])

これはMacintoshの標準的なチェックボックスを作ります。

titleはチェックボックスのテキストとして使われ、ウィンドウフォントで表示されます。callbackは、チェックボックスがenable状態でクリックされた時に呼び出されます;引数をひとつ取り、チェックボックスの状態がget()で返されます。valueはチェックボックスの初期状態です。

CheckBoxControlWidgetClickableWidgetWidgetの サブクラスです。それらのメソッドに加えて、CheckBoxには以下のメソッドがあります:

push()
これは、チェックボックス状態を切り替えることによってユーザのクリックをシミュレートし、コールバックを呼び出します。もしチェックボックスがdisable状態なら、何も起こりません。command+キーをバインドするのに適しています。
toggle()
これはチェックボックスの状態を切り替えますが、コールバックを呼び出しません。
set(value)
これは、チェックボックスの状態をvalueに設定します(1ならチェックあり、0ならチェックなし)。コールバックは呼び出しません。
get()
これは、チェックボックスの状態を返します(1ならチェックあり、0ならチェックなし)。
RadioButton (possize, title, thebuttons [, callback = None, value = 0])

これはMacintoshの標準的なラジオボタンを作ります。

Titleはラジオボタンのテキストとして使われ、ウィンドウフォントで表示されます。 theButtonsは一緒にグループ化されるラジオボタンを示すリストです。 callbackは、ラジオボタンがenable状態でクリックされた時に呼び出されます;引数をひとつ取り、必ず1です(しかし、たぶんWの将来のバージョンでは0になるかもしれません)。valueはラジオボタンの初期状態です(スタート時にはひとつのグループの中でせいぜいひとつのラジオボタンが選択されているということをお忘れなく)。

RadioButtonControlWidgetClickableWidgetWidgetのサブクラスです。それらのメソッドに加えて、RadioButtonには以下のメソッドがあります:

push()
これは、そのチェックボタンを選択することによってユーザによるチェックボタン上でのクリックをシミュレートします。もしチェックボタンがdisable状態なら、何もしません。これは、command+キーをバインドするのに適しています。
set(value)
これは、メソッドが適用されたラジオボタンを選択し、そのグループ中で選択されていたラジオボタンの選択を解除します。valueはダミーの変数です。
get()
そのラジオボタンの状態を返します(1なら選択されており、0なら選択されていない)。
ScrollBar (possize [, callback = None, value = 0, min = 0, max = 0])

これは、Macintoshの標準的なスクロールバーを作ります。

callbackは、スクロールバーがenable状態でクリックされた時に呼び出されます;引数をひとつ取り、ユーザがスクロールバーのスクロールインジケータを動かしたらその設定された値を、スクロールアローのアップ、ダウン、ページアップ、ページダウンでそれぞれ'+', '-', '++' or '--'を返します。valueはスクロールバーの位置の初期設定値です。minはスクロールバーが取り得る最小値、maxは最大値です。

ScrollBarControlWidgetClickableWidgetWidgetのサブクラスです。それらのメソッドに加えて、ScrollBarには以下のメソッドがあります:

up()
これは、コールバックを'+'とともに呼び出すことによって、ユーザによるスクロールアローのアップボタンのクリックをシミュレートします。キーをバインドするのに適しています。
down()
これは、コールバックを'-'とともに呼び出すことによって、ユーザによるスクロールアローのダウンボタンのクリックをシミュレートします。キーをバインドするのに適しています。
pageup()
これは、コールバックを'++'とともに呼び出すことによって、ユーザによるスクロールバーのページアップのクリックをシミュレートします。キーをバインドするのに適しています。
pagedown()
これは、コールバックを'--'とともに呼び出すことによって、ユーザによるスクロールバーのページダウンのクリックをシミュレートします。キーをバインドするのに適しています。
set(value)
(XXX 2つの異なるsetメソッドがあって、ひとつはオーバーライドされたコールバックを呼び出すためのもの) これは、valueにスクロールバーの値を設定して、それにしたがってスクロールインジケータを動かします。これはコールバックを呼び出しません。
get()
現在のスクロールバーの値を返します。
setmin(value)
これは、スクロールバーの最小値をvalueに設定して、それにしたがってスクロールインジケータを動かします。
getmin()
現在のスクロールバーの最小値を返します。
setmax(value)
これは、スクロールバーの最大値をvalueに設定して、それにしたがってスクロールインジケータを動かします。
getmax()
現在のスクロールバーの最大値を返します。
List (possize [, items = None, callback = None, flags = 0, cols = 1, typingcasesens = 0])

これは、Macintoshの標準的なリストボックスを作ります。

Itemsは、リストボックス内に表示される項目の初期値です−リストの項目はどんなPythonオブジェクトでもよく、リストボックスの各項目はstr()で返される最初の255文字になります。 callbackは、リストボックスがenable状態でクリックされた時に呼び出されます;引数をひとつ取り、ユーザがリストボックス上でダブルクリックすると1です。flagsは選択を示すフラグです(List モジュールをごらんください:フラグの定数はlOnlyOneからlNoNilHiliteまでです[訳注:?])。 colsは、リストボックスの列の数です。(XXX 今のところ、1列だけしかありません。項目全てを操作するコマンドは働きません。複数の列を扱う実験的なMultiListがサブクラスがあります。) typingcasesensは、もし大文字/小文字にかかわりなくキー入力で項目を選択するなら0に、大文字/小文字を考慮に入れる必要があるなら1にします。

ListBoxは、SelectableWidgetWidgetのサブクラスです。それらのメソッドに加えて、ScrollBarには以下のものがあります:

set(items)
これは、Python形式のリストitemsを引数に取り、そのリストの中の項目をリストボックスの項目に設定します。
get()
これは、リストボックスの中の現在の項目をPythonのリスト形式で返します。
setselection(selection)
これは、選択したい項目をインデックスで表したリスト(訳注:[1,3,4]あるいはrange(2,10)など)を引数に取り、それらを選択します。
getselection()
これは、現在選択されている項目の添字からなるリストをかえします。
setselectedobjects(objects)
これは、項目のリストを含むオブジェクトからなるリストを引数に取り、それらのオブジェクトを選択します。
getselectedobjects()
これは、現在選択されているオブジェクトからなるリストを返します。
また、リストボックスは__getitem____setitem____delitem____getslice____selslice____len__appendremoveindexinsertの各メソッドを持っていて、ふつうに更新可能なリストオブジェクトとして扱われます。

標準ではなく、異なるLDEFでリストボックスを作るには、open()を呼び出してリストウィジェットを作る前に、Listインスタンスの中のLDEF_IDクラス変数をオーバーライドします。 TwoLineListListのサブクラスで、ひとつのセルに2行表示する別種のLDEFを使用しています;これはIDEのtracebackで現れるリストです。

Movie (possize)

QuickTimeムービーのウィジェットを作ります(XXX これは実験的なもののようです−ムービーを引数として渡すことができるなんてことはないでしょう?)

MovieWidgetのサブクラスです。以下のメソッドが定義されています:

set(file [, start = 0])
fileから渡されるパス名あるいはfssを受け取り、オプションの値startの位置からムービーをスタートさせます。
get()
ウィジェットの現在のQuickTimeムービーオブジェクトを返します。
getmovietitle()
ムービーのタイトルを返します。
start()
現在のムービーを再生します。
stop()
再生中なら、現在のムービーを再生を停止します。
rewind()
現在のムービーをスタート地点に巻き戻します。

Popup Menu ウィジェットクラス

ポップアップメニューには、いろいろな種類があります。

PopupWidget (possize [, items = [], callback = None])

小さなポップアップメニューボタンを作ります。メニューはウィジェットがクリックされた時に動的に作成されます。 幅と高さは16ピクセルです。

callbackは、メニュー項目それぞれに関連付けられたコールバックがなくても呼び出されます;選ばれたオブジェクトはコールバックに引数として渡されます。Itemsは、表示されるメニュー項目のリストです;リストの中の項目は以下のもでなければなりません:

PopupWidgetは、ClickableWidgetのサブクラスです。さらに以下のメソッドが定義されています:

set(items)
リストitemsを引数にとり、上で述べたようにリスト内の項目をメニュー項目に設定します。
get()
これは、現在のメニュー項目のリストを返します。
(XXX 同じようにUserListが使えたらいいのに。)
PopupMenu (possize [, items = [], callback = None])

小さなポップアップメニューボタンを作ります。メニューは前もって作られるため、内容が静的なものに適しています。 幅と高さは16ピクセルです。

PopupMenuPopupWidgetのサブクラスで、同じインターフェイスを持ちます。

FontMenu (possize, callback)

小さなフォントポップアップメニューを作ります。幅と高さは16ピクセルです。

callbackは、メニューから選択されると呼び出されます;選ばれたフォントの名称が引数として渡されます。

FontMenuPopupMenuのサブクラスで、同じインターフェイスを持ちますが、set()は除きます。このメソッドを使うと、例外を発生します。

Static Graphic クラス

簡単な画像を扱うウィジェットがあります。

HorizontalLine (possize [, thickness = 1])

水平線です。

矩形の上端からpossizeで示される線を描きます。thicknessはピクセルで示される太さです。

VerticalLine (possize [, thickness = 1])

垂直線です。

矩形の左端からpossizeで示される線を描きます。thicknessはピクセルで示される太さです。

HorizontalLineVerticalLineはどちらもWidgetのサブクラスです。追加のメソッドはありません。

Frame (possize [, pattern = Qd.qd.black, color = (0, 0, 0) ])

矩形です。

矩形は、パターンpatternと色colorで示されるペンで描画されます。

FrameWidgetのサブクラスで、さらに2つのメソッドが追加されています:

setcolor(color)
ペンのカラーをcolorに設定し、矩形を再描画します。
setpattern(pattern)
ペンのパターンをpatternに設定し、矩形を再描画します。
BevelBox (possize [, color = (0xe000, 0xe000, 0xe000) ])

立体の外観を持つボックス(ベベルボックス)です。

ボックスはカラーcolor(RGBで表わします)で塗りつぶされ、Appleの「プラチナアピアランス」に合うよう、縁にハイライトがつきます。

BevelBoxWidgetのサブクラスで、さらに1つのメソッドを持っています:

setcolor(color)
ペンのカラーをcolor(RGBで表わします)に設定し、ボックスを再描画します。

Grouping クラス

これらのウィジェットは他のウィジェットをグループ化します。

Group (possize)

これは、サブウィジェットをグループ化したウィジェットを作ります。

GroupWidgetのサブクラス(訳注:原文subwidget)です。追加のメソッドはありません。

HorizontalPanes (possize [, panesizes = None, gutter = 8 ])
VerticalPanes (possize [, panesizes = None, gutter = 8 ])

これは、縦あるいは横の列に並んだウィジェットのグループを作ります。それぞれのウィジェットの大きさは、間にある区切りをドラッグして変えることができます。

Panesizesは、それぞれの枠の大きさの割合を示すリストで、合計が1でなくてはなりません。もし、Noneなら、枠は同じ大きさになります(XXX 'division by 0 error'に出会う時を除けば。枠の大きさは__init__で設定されるので、そこでサブウィジェットがないとそうなります)。gutterは、枠と枠との間の幅の大きさです。

VerticalPaneHorizontalPaneWidget のサブクラスですが、公開されて使われるメソッドの追加はありません。

Text Widget クラス

これは全て、WASTEテキストエディタのラッパーです。

TextBox (possize [, text = "", align = TextEdit.teJustLeft, fontsettings = None, backgroundcolor = (0xffff, 0xffff, 0xffff) ])

スタティックテキストウィジェットを作ります。

textは表示されるテキストで、alignの形式で表示されます。

TextBoxWidgetのサブクラスで、2つのメソッドが追加されています:

set(text)
これは、ウィジェットのテキストを文字列textに設定します。
get()
これは、TextBoxのテキストを返します。
EditText (possize [, text = "", callback = None, inset = (3, 3), fontsettings = None, tabsettings = (32, 0), readonly = 0 ])

簡単な入力フィールドを持つエディットテキストウィジェットを作ります。もし、親ウィジェットに_barx_baryというサブウィジェットがあれば、それらはウィンドウのスクロールバーとして使われます。

callbackは、テキストが変更されたら呼び出されます;引数は取りません。 insetは(h, v)のタプルで、ウィジェットと含まれる実際のテキストとの境界の余白を設定します。hは左右、vは上下の余白を示します。 tabsettingsは(size, mode)のタプルで、タブが入力された時のスペースの大きさです。もしmodeがtrueならsizeはタブの文字数で、そうでないならピクセル数です。 readonlyがtrueならテキストウィジェットはスタティック、falseなら入力可能になります。

EditTextSelectableWidgetWidgetのサブクラスで、これらのメソッドを継承しています。さらに以下のメソッドを定義しています:

set(text)
これは、ウィジェットのテキストをtextに設定します。
get()
これは、TextBoxのテキストを返します。
gettabsettings
settabsettings
getfontsettings
setfontsettings
getselection
setselection
selview
selectall
selectline
offsettoline
countlines
expandselection
insert
can_undo

EditTextは、Cut、Copy、Paste、Clear、Undo/Redo、Select Allのメニューアイテムのコールバックを持っています。

TextEditor (possize [, text = "", callback = None, wrap = 1, inset = (4, 4), fontsettings = None, tabsettings = (32, 0), readonly = 0 ])

相当な量のテキストを編集するためのテキストエディタウィジェットを作ります。

引数は、wrapを除いてEditTextのものと同じです。 wrapはテキストの行がウィジェットで囲まれるかどうかを設定します。

TextEditorEditTextSelectableWidgetWidgetのサブクラスで、それらのメソッドを継承しています。独自の公開されたメソッドは定義されていません。

PyEditor (possize [, text = "", callback = None, inset = (4, 4), fontsettings = None, tabsettings = (32, 0), readonly = 0, debugger = None, file = ''])

デバッガーと結び付いた、特別のPythonのソースコードのためのエディットウィジェットを作ります。

引数は、debuggerfileを除いてTextEditorと同じです。 debuggerはコードを実行するときにデバッガーを使用するかどうか指定し、 fileはソースコードのファイルで、デバッガーが参照します。

追加のメソッドは以下のとおりです。

set
setfile
getfile
showbreakpoints
togglebreakpoints
clearbreakpoints
editbreakpoints

PyEditorは、Shift Left、Shift Right、Comment、Uncommentのメニューアイテムのコールバックを持っています。

Window クラス

Window (possize [, title = "", minsize = None, maxsize = None, tabable = 1, show = 1, fontsettings = None])

標準的なドキュメントウィンドウを作ります。

titleは、ウィンドウの上部に示されるテキストです。 minsizemaxsizeはそれぞれウィンドウがとりうる最小、最大の大きさです。 tabableがtrueなら、"Tab"が押されるとウィンドウ内のSelectableWidgetを順に選択し、"Shift-Tab"が押されると逆順で選択されます。もしshowがtrueなら、ウィンドウが作られた時に表示されます。

Windowは、SelectableWidgetWidgetのサブクラスです;また、FrameWork.Windowクラスのサブクラスでもあります。さらに以下のメソッドが定義されています:

settitle(title)
これは、ウィンドウのタイトルをtitleに設定します。
gettitle()
これは、ウィンドウの現在のタイトルを含む文字列を返します。
getcurrentwidget()
これは、キーボードフォーカスで現在選択されているウィジェットを、それがどんなものでも返します。
setdefaultbutton([button = None, *keys])
ウィンドウのデフォルトボタンをbuttonに設定します。もし引数がfalseならデフォルトボタンを削除します。buttonは、Buttonクラスのインスタンスでなければなりません。Buttonpush()メソッドは、"return"、"enter"、そして他のどんなキーでも*keysパラメーターで設定できます。

さらに、ウィンドウメソッドでは、"Close"メニューアイテムのハンドラが設定されています。

どんな重要なアプリケーションでも、おそらく__init__メソッドをオーバーライドしてセットアップしたり(Window.__init__を呼び出して通常のセットアップをすることができます)、 closeをオーバーライドしてドキュメントがセーブされているかどうか確かめたり、ユーザに尋ねたりしたいでしょう。また、ドキュメントの操作にdomenu_menuitemハンドラを設定したいこともあるでしょう。データが内部に記憶されているなら、ドキュメントウィンドウクラスはドキュメントに対する操作コマンドを加えるのにも適したところです。

Dialog (possize [, title = ""])

標準のモードレスダイアログボックスを作ります。これは、EasyDialogsモジュールよりも複雑なダイアログボックスを扱います。

titleはダイアログボックスのタイトルです。

Dialogは"Close"メニューアイテムをdisableにします(つまり、close()メソッドを呼び出すことによって明示的に閉じられなければなりません)が、そういった点ではWindowと同じで、DialogWindowのサブクラスです。

ダイアログは実際のところ、モードレスダイアログの枠をもった普通のウィンドウです; Dialog Managerのルーチンは使いませんし、ユーザ定義のダイアログアイテムは'DLOG'リソースよりもむしろゼロから作られるべきでしょう。'DLOG'リソースを使ったダイアログには、 FrameWork.Dialogを使ってください。

ModalDialog (possize [, title = ""])

モーダルダイアログボックス(ユーザが応答するまで通常の処理を停止するダイアログ)を作ります。

引数はDialogと同じです。もしtitleが空なら固定されたダイアログボックスのウィンドウが作られ、そうでないなら移動可能なウィンドウが作られます。ModalDialogDialogのサブクラスです。

Dialogのように、ModalDialogはダイアログの枠を持った普通のウィンドウです。 モーダルな動作は、ModalDialog自身が持つイベントループによって行われます。

Menubar と Menu クラス

Menuクラスは、本質的にFrameWorkモジュールのMenuクラスと同じもので、同様にFrameWorkモジュールはMenu toolboxモジュールのオブジェクトのラッパーです。

MenuBarMenuは、Wapplicationモジュールと、 FrameWorkモジュール内のMenuItemにあります。

MenuモジュールとMenuクラスの間の名前の衝突の可能性がありますので、注意してください。

MenuBar()

メニューバーです。

一般にはこれを作る必要はありません;アプリケーションのデフォルト動作で初期化の際にAppleメニューとともにこれをひとつ作りますし、アプリケーションのmenubarのインスタンス変数を通してこれが得られます。

MenuBarによって定義されたメソッドは公開されていません: MenuBarMenuのサブクラスを作らないかぎり、しなければならないのはアプリケーションのメニューバーインスタンスの跡をたどることだけです。

Menu(self, menubar, title [, where = 0])

標準的なMacintoshのメニューを作り、メニューバーに組み込みます。

メニューはタイトルtitleを持ち、メニューバーmenubarに組み込みます。 パラメータwhereはメニューバーのどこにメニューが組み込まれるかを設定します;0なら最後に、 -1なら表示されませんがサブメニューあるいはポップアップメニューとして保持されます。

MenuItem(menu, title, [shortcut = None, callback = None])
RadioItem(menu, title, [shortcut = None, callback = None])
CheckItem(menu, title, [shortcut = None, callback = None])

メニューの中にアイテムを作り、メニューの中に組み込みます。 (XXX RadioItemとCheckItemは作動しません。)

メニューアイテムは、呼び出し可能なcallbackに渡されるか、アプリケーション、 最前面のウィンドウあるいは現在のウィンドウの選択されたウィジェットのどちらかで'domenu_callback'メソッドを持つもの、これらのうちのどれかに渡されなければなりません;そうでないならメニューは暗くなります。 メニュー項目のうち、値や実行するのが適切かどうかがアプリケーションやドキュメントの現在の状態に依存するものがあれば、'can_callback'メソッドを設けるべきです;もしこのメソッドがfalseを返したら、メニュー項目は暗くなり、trueを返したら実行可能になります。もしそういうことが必要であれば、'can_callback'メソッドはメニューアイテムのテキストを変える責任を持ちます。

Application クラス

便利な機能