25.3. tkinter.tix --- Tkの拡張ウィジェット¶
ソースコード: Lib/tkinter/tix.py
tkinter.tix (Tk Interface Extension) モジュールは豊富な追加ウィジェットを提供します。標準 Tk ライブラリには多くの有用なウィジェットがありますが、決して完全ではありません。 tkinter.tix ライブラリは、HList 、 ComboBox 、 Control (別名SpinBox) および各種のスクロール可能なウィジェットなど、標準 Tk にはないが、一般的に必要とされるウィジェットの大部分を提供します。 tkinter.tix には、class:NoteBook 、 FileEntry 、 PanedWindow など、一般的に幅広い用途に役に立つたくさんのウィジェットも含まれています。それらは40以上あります。
これら多くの新しいウィジェットと使うと、より便利でより直感的なユーザインタフェースを作成し、新しい相互作用テクニックをアプリケーションに導入することができます。アプリケーションとユーザに特有の要求に合うように、最も適切なアプリケーションウィジェットを選んでアプリケーションを設計できます。
参考
- Tix Homepage
Tixのホームページ。ここには追加ドキュメントとダウンロードへのリンクがあります。- Tix Man Pages
- manページと参考資料のオンライン版。
- Tix Programming Guide
- プログラマ用参考資料のオンライン版。
- Tix Development Applications
- Tix と Tkinter プログラムの開発のための Tix アプリケーション。 Tideアプリケーションは Tk または Tkinter に基づいて動作します。また、リモートで Tix/Tk/Tkinter アプリケーションを変更やデバッグするためのインスペクタ TixInspect が含まれます。
25.3.1. Tixを使う¶
-
class
tkinter.tix.Tk(screenName=None, baseName=None, className='Tix')¶ 主にアプリケーションのメインウィンドウを表すTixのトップレベルウィジェット。Tcl インタープリタが関連付けられます。
tkinter.tixモジュールのクラスはtkinterモジュールのクラスをサブクラス化します。前者は後者をインポートするので、モジュールを一つインポートするだけでtkinter.tixを Tkinter と一緒に使うことができます。一般的に、tkinter.tixをインポートし、トップレベルでのtkinter.Tkへの呼び出しはtix.Tkに置き換えるだけで済みます。次に例を示します:from tkinter import tix from tkinter.constants import * root = tix.Tk()
tkinter.tix を使うためには、通常 Tk ウィジェットのインストールと平行して、Tix ウィジェットをインストールしなければなりません。インストールをテストするために、次のことを試してください:
from tkinter import tix
root = tix.Tk()
root.tk.eval('package require Tix')
これが失敗した場合は、 Tk のインストールに問題があり、先に進む前に解決しなければなりません。インストールされた Tix ライブラリを指定するためには環境変数 TIX_LIBRARY を使ってください。 Tk 動的オブジェクトライブラリ (tk8183.dll または libtk8183.so) を含むディレクトリと同じディレクトリに、動的オブジェクトライブラリ (tix8183.dll または libtix8183.so) があるかどうかを確かめてください。動的オブジェクトライブラリのあるディレクトリには、 pkgIndex.tcl (大文字、小文字を区別します) という名前のファイルも含まれているべきで、それには次の一行が含まれます:
package ifneeded Tix 8.1 [list load "[file join $dir tix8183.dll]" Tix]
25.3.2. Tixウィジェット¶
Tix は40個以上のウィジェットクラスを tkinter のレパートリーに導入します。
25.3.2.1. 基本ウィジェット¶
-
class
tkinter.tix.Balloon¶ ヘルプを提示するためにウィジェット上にポップアップする Balloon。ユーザがカーソルをBalloonウィジェットが束縛されているウィジェット内部へ移動させたとき、説明のメッセージが付いた小さなポップアップウィンドウがスクリーン上に表示されます。
-
class
tkinter.tix.ComboBox¶ ComboBox ウィジェットはMS Windowsのコンボボックスコントロールに似ています。ユーザはエントリ・サブウィジェットでタイプするか、リストボックス・サブウィジェットから選択するかのどちらかで選択肢を選びます。
-
class
tkinter.tix.Control¶ Control ウィジェットは
SpinBoxウィジェットとしても知られています。ユーザは二つの矢印ボタンを押すか、またはエントリに直接値を入力して値を調整します。新しい値をユーザが定義した上限と下限に対してチェックします。
-
class
tkinter.tix.LabelEntry¶ LabelEntry ウィジェットはエントリウィジェットとラベルを一つのメガウィジェットにまとめたものです。"記入形式"型のインタフェースの作成を簡単に行うために使うことができます。
-
class
tkinter.tix.LabelFrame¶ LabelFrame ウィジェットはフレームウィジェットとラベルを一つのメガウィジェットにまとめたものです。LabelFrameウィジェット内部にウィジェットを作成するためには、
frameサブウィジェットに対して新しいウィジェットを作成し、それらをframeサブウィジェット内部で取り扱います。
-
class
tkinter.tix.OptionMenu¶ OptionMenu はオプションのメニューボタンを作成します。
-
class
tkinter.tix.PopupMenu¶ PopupMenu ウィジェットは
tk_popupコマンドの代替品として使用できます。TixPopupMenuウィジェットの利点は、操作に必要なアプリケーション・コードが少ないことです。
-
class
tkinter.tix.Select¶ Select ウィジェットはボタン・サブウィジェットのコンテナです。ユーザに対する選択オプションのラジオボックスまたはチェックボックス形式を提供するために利用することができます。
-
class
tkinter.tix.StdButtonBox¶ StdButtonBox ウィジェットは、Motif に似たダイアログボックスのための標準的なボタンのグループです。
25.3.2.2. ファイルセレクタ¶
-
class
tkinter.tix.DirList¶ DirList ウィジェットは、ディレクトリのリストビュー (上の階層のディレクトリとサブディレクトリ) を表示します。ユーザはリスト内に表示されたディレクトリの一つを選択したり、他のディレクトリへ変更したりできます。
-
class
tkinter.tix.DirTree¶ DirTree ウィジェットはディレクトリのツリービュー (上の階層のディレクトリとそのサブディレクトリ) を表示します。ユーザはリスト内に表示されたディレクトリの一つを選択したり、他のディレクトリへ変更したりできます。
-
class
tkinter.tix.DirSelectDialog¶ DirSelectDialog ウィジェットは、ダイアログウィンドウにファイルシステム内のディレクトリを提示します。ユーザはこのダイアログウィンドウを使用して、ファイルシステム内を移動して目的のディレクトリを選択することができます。
-
class
tkinter.tix.DirSelectBox¶ DirSelectBoxは標準 Motif(TM) ディレクトリ選択ボックスに似ています。ユーザがディレクトリを選択するために一般的に使われます。DirSelectBox は主に最近 ComboBox ウィジェットに選択されたディレクトリを保存し、すばやく再選択できるようにします。
-
class
tkinter.tix.ExFileSelectBox¶ ExFileSelectBox ウィジェットは、たいてい tixExFileSelectDialog ウィジェット内に組み込まれます。ユーザがファイルを選択するのに便利なメソッドを提供します。
ExFileSelectBoxウィジェットのスタイルは、MS Windows 3.1 の標準ファイルダイアログにとてもよく似ています。
-
class
tkinter.tix.FileSelectBox¶ FileSelectBox は標準的な Motif(TM) ファイル選択ボックスに似ています。通常、ユーザがファイルを選択するために使われます。FileSelectBox は、直近に
ComboBoxウィジェットに選択されたファイルを保存し、素早く再選択できるようにします。
25.3.2.3. 階層的リストボックス¶
-
class
tkinter.tix.HList¶ HList ウィジェットは階層構造をもつどんなデータ(例えば、ファイルシステムディレクトリツリー)でも表示するために使用できます。リストエントリは字下げされ、階層のそれぞれの場所に応じて分岐線で接続されます。
25.3.2.4. 表的リストボックス¶
25.3.2.5. 管理ウィジェット¶
-
class
tkinter.tix.PanedWindow¶ PanedWindow ウィジェットは、ユーザがいくつかのペインのサイズを対話的に操作できるようにします。ペインは垂直または水平のどちらかに配置されます。ユーザは二つのペインの間でリサイズ・ハンドルをドラッグしてペインの大きさを変更します。
-
class
tkinter.tix.ListNoteBook¶ ListNoteBook ウィジェットは、
TixNoteBookウィジェットにとてもよく似ています。ノートのメタファを使って限られた空間をに多くのウィンドウを表示するために使われます。ノートはたくさんのページ(ウィンドウ)に分けられています。ある時には、これらのページの一つしか表示できません。ユーザはhlistサブウィジェットの中の望みのページの名前を選択することによって、これらのページを切り替えることができます。
25.3.2.6. 画像タイプ¶
tkinter.tix モジュールは次のものを追加します:
- 全ての
tkinter.tixとtkinterウィジェットに対して XPM ファイルからカラー画像を作成する pixmap 機能。 - Compound 画像タイプは複数の水平方向の線から構成される画像を作成するために使うことができます。それぞれの線は左から右に並べられた一連のアイテム(テキスト、ビットマップ、画像あるいは空白)から作られます。例えば、Tk の
Buttonウィジェットの中にビットマップとテキスト文字列を同時に表示するためにcompound画像は使うことができます。
25.3.2.7. その他のウィジェット¶
25.3.2.8. ジオメトリマネジャを作る¶
加えて、 tkinter.tix は次のものを提供することで tkinter を補強します:
25.3.3. Tixコマンド¶
-
class
tkinter.tix.tixCommand¶ tixコマンド は
Tixの内部状態とTixアプリケーション・コンテキストのいろいろな要素へのアクセスを提供します。これらのメソッドによって操作される情報の大部分は、特定のウィンドウというよりむしろアプリケーション全体かスクリーンあるいはディスプレイに関するものです。現在の設定を見るための一般的な方法は:
from tkinter import tix root = tix.Tk() print(root.tix_configure())
-
tixCommand.tix_configure(cnf=None, **kw)¶ Tix アプリケーション・コンテキストの設定オプションを問い合わせたり、変更したりします。オプションが指定されなければ、利用可能なオプションすべてのディクショナリを返します。オプションが値なしで指定された場合は、メソッドは指定されたオプションを説明するリストを返します(このリストはオプションが指定されていない場合に返される値に含まれている、指定されたオプションに対応するサブリストと同一です)。一つ以上のオプション-値のペアが指定された場合は、メソッドは与えられたオプションが与えられた値を持つように変更します。この場合は、メソッドは空文字列を返します。オプションは設定オプションのどれでも構いません。
-
tixCommand.tix_cget(option)¶ option によって与えられた設定オプションの現在の値を返します。オプションは設定オプションのどれでも構いません。
-
tixCommand.tix_getbitmap(name)¶ ビットマップディレクトリの一つの中の
name.xpmまたはnameと言う名前のビットマップファイルの場所を見つけ出します (tix_addbitmapdir()メソッドを参照してください)。tix_getbitmap()を使うことで、アプリケーションにビットマップファイルのパス名をハードコーディングすることを避けることができます。成功すれば、文字@を先頭に付けたビットマップファイルの完全なパス名を返します。戻り値をTkとTixウィジェットのbitmapオプションを設定するために使うことができます。
-
tixCommand.tix_addbitmapdir(directory)¶ Tix は
tix_getimage()とtix_getbitmap()メソッドが画像ファイルを検索する検索先ディレクトリのリストを保持しています。標準ビットマップディレクトリは$TIX_LIBRARY/bitmapsです。tix_addbitmapdir()メソッドは directory をこのリストに追加します。そのメソッドを使うことによって、tix_getimage()またはtix_getbitmap()メソッドを使ってアプリケーションの画像ファイルも見つけることができます。
-
tixCommand.tix_filedialog([dlgclass])¶ このアプリケーションからの異なる呼び出しの間で共有される可能性があるファイル選択ダイアログを返します。最初に呼ばれた時に、このメソッドはファイル選択ダイアログ・ウィジェットを作成します。このダイアログはその後のすべての
tix_filedialog()への呼び出しで返されます。オプションの dlgclass パラメータは、要求されているファイル選択ダイアログ・ウィジェットの型を指定するために文字列として渡されます。指定可能なオプションはtix、FileSelectDialogあるいはtixExFileSelectDialogです。
-
tixCommand.tix_getimage(self, name)¶ ビットマップディレクトリの一つの中の
name.xpm、name.xbmまたはname.ppmという名前の画像ファイルの場所を見つけ出します(上のtix_addbitmapdir()メソッドを参照してください)。同じ名前(だが異なる拡張子)のファイルが一つ以上ある場合は、画像のタイプがXディスプレイの深さに応じて選択されます。xbm画像はモノクロディスプレイの場合に選択され、カラー画像はカラーディスプレイの場合に選択されます。tix_getimage()を使うことによって、アプリケーションに画像ファイルのパス名をハードコーディングすることを避けられます。成功すれば、このメソッドは新たに作成した画像の名前を返し、Tk と Tix ウィジェットのimageオプションを設定するためにそれを使うことができます。
-
tixCommand.tix_option_get(name)¶ Tixのスキーム・メカニズムによって保持されているオプションを得ます。
-
tixCommand.tix_resetoptions(newScheme, newFontSet[, newScmPrio])¶ Tix アプリケーションのスキームとフォントセットをそれぞれ newScheme と newFontSet に再設定します。この設定は、この呼び出し後に作成されたウィジェットだけに影響します。そのため、Tix アプリケーションのどのウィジェットを作成する前にも resetoptions メソッドを呼び出すのが良い方法です。
オプション・パラメータ newScmPrio を、Tix スキームによって設定される Tk オプションの優先度レベルを再設定するために与えることができます。
Tk が X オプションデータベースを扱う方法のため、Tix がインポートされ初期化された後に、カラースキームとフォントセットを
tix_config()メソッドを使って再設定することはできません。したがって、tix_resetoptions()メソッドを代わりに使わなければならないのです。
