Tk-ウィジェットの概要
Tkベースのアプリケーションの基本コンポーネントはウィジェットと呼ばれます。Tkでは、「ウィンドウ」と「ウィジェット」が同じ意味で使用されることが多いため、コンポーネントはウィンドウと呼ばれることもあります。Tkは、Tclを使用してグラフィカルアプリケーションを作成するための豊富なグラフィカルコンポーネントのセットを提供するパッケージです。
Tkは、ボタンやメニューなどの基本的なGUIウィジェットからデータ表示ウィジェットまで、さまざまなウィジェットを提供しています。ウィジェットはデフォルト構成で使いやすいため、非常に構成可能です。
Tkアプリケーションはウィジェット階層に従い、ウィジェットは別のウィジェット内にいくつでも配置でき、それらのウィジェットは別のウィジェット内に配置できます。Tkプログラムのメインウィジェットはルートウィジェットと呼ばれ、TkRootクラスの新しいインスタンスを作成することで作成できます。
ウィジェットの作成
ウィジェットを作成するための構文を以下に示します。
type variableName arguments options
ここでのタイプは、ボタン、ラベルなどのウィジェットタイプを指します。引数はオプションであり、各ウィジェットの個々の構文に基づいて必須にすることができます。オプションは、各コンポーネントのサイズからフォーマットまでさまざまです。
ウィジェットの命名規則
ウィジェットは、パッケージの命名に似た構造を使用します。Tkでは、ルートウィンドウはピリオド(。)で名前が付けられ、ウィンドウ内の要素は.myButton1という名前になります。変数名は、小文字、数字、または句読点(ピリオドを除く)で始まる必要があります。最初の文字の後の他の文字は、大文字または小文字、数字、または句読点(ピリオドを除く)の場合があります。ラベルの開始には小文字を使用することをお勧めします。
色の命名規則
色は、赤、緑などの名前を使用して宣言できます。#で表す16進数を使用することもできます。16進数の数は、3、6、9、または12にすることができます。
寸法規則
デフォルトの単位はピクセルで、寸法を指定しない場合に使用されます。他の寸法は、インチの場合はi、ミリメートルの場合はm、センチメートルの場合はc、ポイントの場合はpです。
一般的なオプション
すべてのウィジェットで使用できる一般的なオプションは非常に多く、以下の表にリストされています。
シニア番号 | 構文と説明 |
---|---|
1 | -background color ウィジェットの背景色を設定するために使用されます。 |
2 | -borderwidth width 3D効果で境界線を使用して描画するために使用されます。 |
3 | -font fontDescriptor ウィジェットのフォントを設定するために使用されます。 |
4 | -foreground color ウィジェットの前景色を設定するために使用されます。 |
5 | -height number ウィジェットの高さを設定するために使用されます。 |
6 | -highlightbackground color ウィジェットに入力フォーカスがない場合に、ウィジェットの周囲に描画する色の長方形を設定するために使用されます。 |
7 | -highlightcolor color ウィジェットに入力フォーカスがある場合にウィジェットの周囲に描画する色の長方形を設定するために使用されます。 |
8 | -padx number ウィジェットのpadxを設定します。 |
9 | -pady number ウィジェットのパディを設定します。 |
10 | -relief condition このウィジェットの3Dレリーフを設定します。状態は、隆起、沈み込み、平坦、隆起、中実、または溝の場合があります。 |
11 | -text text ウィジェットのテキストを設定します。 |
12 | -textvariable varName ウィジェットに関連付けられた変数。ウィジェットのテキストが変更されると、変数はウィジェットのテキストで設定されます。 |
13 | -width number ウィジェットの幅を設定します。 |
オプションの簡単な例を以下に示します。
#!/usr/bin/wish
grid [label .myLabel -background red -text "Hello World" -relief ridge -borderwidth 3]
-padx 100 -pady 100
上記のプログラムを実行すると、次の出力が得られます。

利用可能なウィジェットのリストは以下に分類されます-
基本的なウィジェット
シニア番号 | ウィジェットと説明 |
---|---|
1 | Label 1行のテキストを表示するためのウィジェット。 |
2 | Button クリック可能でアクションをトリガーするウィジェット。 |
3 | Entry 1行のテキストを入力として受け入れるために使用されるウィジェット。 |
4 | Message 複数行のテキストを表示するためのウィジェット。 |
5 | Text 複数行のテキストを表示し、オプションで編集するためのウィジェット。 |
6 | Toplevel ウィンドウマネージャーによって提供されるすべての境界線と装飾を備えたウィンドウ。 |
レイアウトウィジェット
シニア番号 | ウィジェットと説明 |
---|---|
1 | Frame 他のウィジェットを保持するためのコンテナウィジェット。 |
2 | Place 原点の座標と正確なサイズで特定の場所に他のウィジェットを保持するウィジェット。 |
3 | Pack 親ウィジェットに配置する前にウィジェットをブロックに編成するための単純なウィジェット。 |
4 | Grid ウィジェットをネストして、さまざまな方向にパッキングします。 |
選択ウィジェット
シニア番号 | ウィジェットと説明 |
---|---|
1 | Radiobutton オン/オフボタンとラベルのセットがあり、そのうちの1つを選択できるウィジェット。 |
2 | Checkbutton オン/オフボタンとラベルのセットがあり、その多くを選択できるウィジェット。 |
3 | Menu メニュー項目のホルダーとして機能するウィジェット。 |
4 | Listbox セルのリストを表示するウィジェット。そのうちの1つ以上を選択できます。 |
メガウィジェット
シニア番号 | ウィジェットと説明 |
---|---|
1 | Dialog ダイアログボックスを表示するためのウィジェット。 |
2 | Spinbox ユーザーが数字を選択できるウィジェット。 |
3 | Combobox エントリと使用可能な選択肢のリストを組み合わせたウィジェット。 |
4 | Notebook インデックスタブを使用して、複数のページの1つを切り替えるのに役立つタブ付きウィジェット。 |
5 | Progressbar ファイルのアップロードなどの長い操作の進行状況を視覚的にフィードバックするウィジェット。 |
6 | Treeview アイテムの階層をツリー形式で表示および閲覧できるようにするウィジェット。 |
7 | Scrollbar テキストまたはキャンバスウィジェットなしでウィジェットをスクロールします。 |
8 | Scale ウィジェットをスケーリングして、スライダーを介して数値を選択します。 |
その他のウィジェット
シニア番号 | ウィジェットと説明 |
---|---|
1 | Canvas グラフィックや画像を表示するための描画ウィジェット。 |
これらの各ウィジェットについては、次の章で説明します。