24.3。 Tix —Tkの拡張ウィジェット
Tix (Tk Interface Extension)モジュールは、追加の豊富なウィジェットのセットを提供します。 標準のTkライブラリには多くの便利なウィジェットがありますが、それらは完全にはほど遠いものです。 Tix ライブラリは、標準のTkにない一般的に必要なウィジェットのほとんどを提供します: HList 、 ComboBox 、 Control (別名 SpinBox)とスクロール可能なウィジェットの品揃え。 Tix には、さまざまなアプリケーションで一般的に役立つウィジェットがさらに多数含まれています。 NoteBook 、 FileEntry 、 PanedWindow など。 それらの40以上があります。
これらすべての新しいウィジェットを使用して、アプリケーションに新しい対話手法を導入し、より便利で直感的なユーザーインターフェイスを作成できます。 アプリケーションとユーザーの特別なニーズに合わせて最も適切なウィジェットを選択することにより、アプリケーションを設計できます。
も参照してください
- Tixホームページ
- Tix のホームページ。 これには、追加のドキュメントとダウンロードへのリンクが含まれます。
- Tixのマニュアルページ
- マニュアルページと参考資料のオンライン版。
- Tixプログラミングガイド
- プログラマーの参考資料のオンライン版。
- Tix開発アプリケーション
- TixおよびTkinterプログラムの開発のためのTixアプリケーション。 TideアプリケーションはTkまたはTkinterで動作し、Tix / Tk / Tkinterアプリケーションをリモートで変更およびデバッグするインスペクターである TixInspect が含まれています。
24.3.1。 Tixの使用
- class Tix.Tix(screenName[, baseName[, className]])
主にアプリケーションのメインウィンドウを表すTixのトップレベルウィジェット。 Tclインタープリターが関連付けられています。
Tix モジュールのクラスは、 Tkinter モジュールのクラスをサブクラス化します。 前者は後者をインポートするので、Tkinterで Tix を使用するには、1つのモジュールをインポートするだけです。 一般に、 Tix をインポートして、 Tkinter.Tk へのトップレベルの呼び出しを
Tix.Tk
に置き換えることができます。import Tix from Tkconstants import * root = Tix.Tk()
Tix を使用するには、通常、Tkウィジェットのインストールと一緒に Tix ウィジェットをインストールする必要があります。 インストールをテストするには、次のことを試してください。
import Tix
root = Tix.Tk()
root.tk.eval('package require Tix')
これが失敗した場合は、Tkのインストールに問題があり、続行する前に解決する必要があります。 環境変数 TIX_LIBRARY
を使用して、インストールされている Tix ライブラリディレクトリをポイントし、動的オブジェクトライブラリ(tix8183.dll
またはlibtix8183.so
)Tk動的オブジェクトライブラリ(tk8183.dll
またはlibtk8183.so
)を含む同じディレクトリ内。 動的オブジェクトライブラリのあるディレクトリには、pkgIndex.tcl
(大文字と小文字を区別)というファイルも含まれている必要があります。このファイルには次の行が含まれています。
package ifneeded Tix 8.1 [list load "[file join $dir tix8183.dll]" Tix]
24.3.2。 Tixウィジェット
Tix は、40を超えるウィジェットクラスを Tkinter レパートリーに導入します。 標準ディストリビューションのDemo/tix
ディレクトリには、すべての Tix ウィジェットのデモがあります。
24.3.2.1。 基本的なウィジェット
- class Tix.Balloon
- ヘルプを提供するためにウィジェットの上にポップアップするバルーン。 バルーンウィジェットがバインドされているウィジェット内でユーザーがカーソルを移動すると、説明メッセージを含む小さなポップアップウィンドウが画面に表示されます。
- class Tix.ButtonBox
- ButtonBox ウィジェットは、
Ok Cancel
で一般的に使用されるようなボタンのボックスを作成します。
- class Tix.ComboBox
- ComboBox ウィジェットは、MSWindowsのコンボボックスコントロールに似ています。 ユーザーは、エントリサブウィジェットを入力するか、リストボックスサブウィジェットから選択することにより、選択肢を選択できます。
- class Tix.Control
- Control ウィジェットは
SpinBox
ウィジェットとも呼ばれます。 ユーザーは、2つの矢印ボタンを押すか、エントリに直接値を入力することにより、値を調整できます。 新しい値は、ユーザー定義の上限と下限に対してチェックされます。
- class Tix.LabelEntry
- LabelEntry ウィジェットは、エントリーウィジェットとラベルを1つのメガウィジェットにパッケージ化します。 これは、「入力形式」タイプのインターフェースの作成を簡素化するために使用できます。
- class Tix.LabelFrame
- LabelFrame ウィジェットは、フレームウィジェットとラベルを1つのメガウィジェットにパッケージ化します。 LabelFrameウィジェット内にウィジェットを作成するには、
frame
サブウィジェットに関連する新しいウィジェットを作成し、frame
サブウィジェット内でそれらを管理します。
- class Tix.Meter
- Meter ウィジェットを使用して、実行に時間がかかる可能性のあるバックグラウンドジョブの進行状況を表示できます。
- class Tix.OptionMenu
- OptionMenu は、オプションのメニューボタンを作成します。
- class Tix.PopupMenu
- PopupMenu ウィジェットは、
tk_popup
コマンドの代わりに使用できます。 Tix PopupMenu ウィジェットの利点は、操作に必要なアプリケーションコードが少ないことです。
- class Tix.Select
- Select ウィジェットは、ボタンサブウィジェットのコンテナーです。 これは、ユーザーにラジオボックスまたはチェックボックススタイルの選択オプションを提供するために使用できます。
- class Tix.StdButtonBox
- StdButtonBox ウィジェットは、Motifのようなダイアログボックスの標準ボタンのグループです。
24.3.2.2。 ファイルセレクター
- class Tix.DirList
- DirList ウィジェットは、ディレクトリ、その前のディレクトリ、およびそのサブディレクトリのリストビューを表示します。 ユーザーは、リストに表示されているディレクトリの1つを選択するか、別のディレクトリに変更できます。
- class Tix.DirTree
- DirTree ウィジェットは、ディレクトリ、その前のディレクトリ、およびそのサブディレクトリのツリービューを表示します。 ユーザーは、リストに表示されているディレクトリの1つを選択するか、別のディレクトリに変更できます。
- class Tix.DirSelectDialog
- DirSelectDialog ウィジェットは、ファイルシステム内のディレクトリをダイアログウィンドウに表示します。 ユーザーはこのダイアログウィンドウを使用してファイルシステム内を移動し、目的のディレクトリを選択できます。
- class Tix.DirSelectBox
- DirSelectBox は、標準のMotif(TM)ディレクトリ選択ボックスに似ています。 通常、ユーザーがディレクトリを選択するために使用されます。 DirSelectBoxは、最近選択されたディレクトリをComboBoxウィジェットに格納して、すばやく再度選択できるようにします。
- class Tix.ExFileSelectBox
- ExFileSelectBox ウィジェットは通常、tixExFileSelectDialogウィジェットに埋め込まれています。 これは、ユーザーがファイルを選択するための便利な方法を提供します。 ExFileSelectBox ウィジェットのスタイルは、MS Windows3.1の標準のファイルダイアログと非常によく似ています。
- class Tix.FileSelectBox
- FileSelectBox は、標準のMotif(TM)ファイル選択ボックスに似ています。 通常、ユーザーがファイルを選択するために使用されます。 FileSelectBoxは、最近選択されたファイルを ComboBox ウィジェットに保存して、すばやく再度選択できるようにします。
- class Tix.FileEntry
- FileEntry ウィジェットを使用して、ファイル名を入力できます。 ユーザーはファイル名を手動で入力できます。 または、エントリの横にあるボタンウィジェットを押すと、ファイル選択ダイアログが表示されます。
24.3.2.3。 階層リストボックス
- class Tix.HList
- HList ウィジェットを使用して、ファイルシステムディレクトリツリーなど、階層構造を持つ任意のデータを表示できます。 リストエントリは、階層内の位置に応じてインデントされ、分岐線で接続されます。
- class Tix.CheckList
- CheckList ウィジェットには、ユーザーが選択するアイテムのリストが表示されます。 CheckListは、チェックボタンまたはラジオボタンよりもはるかに多くの項目を処理できることを除いて、Tkチェックボタンまたはラジオボタンウィジェットと同様に機能します。
- class Tix.Tree
- Tree ウィジェットを使用して、階層データをツリー形式で表示できます。 ユーザーは、ツリーの一部を開いたり閉じたりすることで、ツリーのビューを調整できます。
24.3.2.4。 表形式のリストボックス
- class Tix.TList
- TList ウィジェットを使用して、データを表形式で表示できます。 TList ウィジェットのリストエントリは、Tkリストボックスウィジェットのエントリに似ています。 主な違いは、(1) TList ウィジェットがリストエントリを2次元形式で表示できること、および(2)グラフィックイメージと複数の色およびフォントをリストエントリに使用できることです。
24.3.2.5。 マネージャーウィジェット
- class Tix.PanedWindow
- PanedWindow ウィジェットを使用すると、ユーザーは複数のペインのサイズをインタラクティブに操作できます。 ペインは、垂直または水平に配置できます。 ユーザーは、2つのペイン間でサイズ変更ハンドルをドラッグして、ペインのサイズを変更します。
- class Tix.ListNoteBook
- ListNoteBook ウィジェットは、
TixNoteBook
ウィジェットと非常によく似ています。ノートブックのメタファーを使用して、限られたスペースに多くのウィンドウを表示するために使用できます。 ノートブックはページのスタック(ウィンドウ)に分割されています。 一度に表示できるのは、これらのページの1つだけです。 ユーザーは、hlist
サブウィジェットで目的のページの名前を選択することにより、これらのページをナビゲートできます。
- class Tix.NoteBook
- NoteBook ウィジェットは、ノートブックのメタファーを使用して、限られたスペースに多くのウィンドウを表示するために使用できます。 ノートブックはページのスタックに分割されています。 一度に表示できるのは、これらのページの1つだけです。 ユーザーは、NoteBookウィジェットの上部にある視覚的な「タブ」を選択することで、これらのページをナビゲートできます。
24.3.2.6。 画像の種類
Tix モジュールは以下を追加します。
- pixmap 機能をすべての Tix および Tkinter ウィジェットに追加して、XPMファイルからカラー画像を作成します。
- 化合物画像タイプを使用して、複数の水平線で構成される画像を作成できます。 各行は、左から右に配置された一連のアイテム(テキスト、ビットマップ、画像、またはスペース)で構成されています。 たとえば、複合画像を使用して、Tk
Button
ウィジェットでビットマップとテキスト文字列を同時に表示できます。
24.3.2.7。 その他のウィジェット
- class Tix.InputOnly
- InputOnly ウィジェットは、ユーザーからの入力を受け入れるためのものであり、これは
bind
コマンド(Unixのみ)で実行できます。
24.3.3。 Tixコマンド
- class Tix.tixCommand
tixコマンドは、 Tix の内部状態および Tix アプリケーションコンテキストのその他の要素へのアクセスを提供します。 これらのメソッドによって操作される情報のほとんどは、特定のウィンドウではなく、アプリケーション全体、または画面やディスプレイに関連しています。
現在の設定を表示するための一般的な使用法は次のとおりです。
import Tix root = Tix.Tk() print root.tix_configure()
- tixCommand.tix_configure(cnf=None ** kw)
- Tixアプリケーションコンテキストの構成オプションを照会または変更します。 オプションが指定されていない場合、使用可能なすべてのオプションの辞書を返します。 オプションが値なしで指定されている場合、メソッドは1つの名前付きオプションを説明するリストを返します(このリストは、オプションが指定されていない場合に返される値の対応するサブリストと同じになります)。 1つ以上のオプションと値のペアが指定されている場合、メソッドは指定されたオプションを変更して、指定された値を持ちます。 この場合、メソッドは空の文字列を返します。 オプションは、構成オプションのいずれかです。
- tixCommand.tix_cget(option)
- option で指定された構成オプションの現在の値を返します。 オプションは、構成オプションのいずれかです。
- tixCommand.tix_getbitmap(name)
name.xpm
またはname
という名前のビットマップファイルをビットマップディレクトリの1つに配置します( tix_addbitmapdir()メソッドを参照)。 tix_getbitmap()を使用すると、アプリケーションでビットマップファイルのパス名をハードコーディングする必要がなくなります。 成功すると、文字@
が前に付いたビットマップファイルの完全なパス名が返されます。 戻り値を使用して、TkおよびTixウィジェットのbitmap
オプションを構成できます。
- tixCommand.tix_addbitmapdir(directory)
- Tixは、 tix_getimage()および tix_getbitmap()メソッドが画像ファイルを検索するディレクトリのリストを保持しています。 標準のビットマップディレクトリは
$TIX_LIBRARY/bitmaps
です。 tix_addbitmapdir()メソッドは、ディレクトリをこのリストに追加します。 このメソッドを使用すると、 tix_getimage()または tix_getbitmap()メソッドを使用してアプリケーションのイメージファイルを見つけることもできます。
- tixCommand.tix_filedialog([dlgclass])
- このアプリケーションからの異なる呼び出し間で共有される可能性のあるファイル選択ダイアログを返します。 このメソッドは、最初に呼び出されたときにファイル選択ダイアログウィジェットを作成します。 このダイアログは、 tix_filedialog()への後続のすべての呼び出しによって返されます。 オプションのdlgclassパラメータを文字列として渡して、必要なファイル選択ダイアログウィジェットのタイプを指定できます。 可能なオプションは、
tix
、FileSelectDialog
、またはtixExFileSelectDialog
です。
- tixCommand.tix_getimage(self, name)
- ビットマップディレクトリの1つで
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()メソッドを使用する必要があります。