第 18 章 キャンバス コントロール
キャンバス コントロールは、名前が示すように、他のコントロールを描画または追加するための空のキャンバスを作成します。
キャンバス コントロールは、次のグラフィックスをサポートします。
Arc (円弧、弦、扇形を含む円弧)
ビットマップ (ビットマップ)
イメージ (イメージ)
直線 (ライン) (直線、矢印の描画)
円シリーズ (楕円形) (円または楕円の描画)
ポリゴン (多角形) (多角形の描画)
長方形 (長方形) (長方形の描画)
テキスト (テキスト) (テキストの描画)
ウィンドウ (ウィンドウ) (描画ウィンドウ)
18.1 プロパティ
属性 | 説明 |
---|---|
背景の 背景 |
キャンバス コントロールの背景色 |
境界幅 bd |
キャンバス コントロールの境界線の幅。デフォルトは 1 ~ 2 ピクセルです。 |
十分近い | 値を指定します。マウスとキャンバス オブジェクト間の距離がこの値より小さい場合、マウスはキャンバス オブジェクト上にあると見なされます。このオプションは浮動小数点値であり、デフォルト値は 1.0 です。 |
閉じ込める | Canvas コンポーネントが、scrollregion オプションで指定された範囲を超えたスクロールを許可するかどうかを指定します。これが True の場合、スクロールは許可されません。デフォルト値は True です |
身長 | キャンバス コントロールの高さ |
ハイライト背景 | 入力フォーカスがない場合のハイライト境界線の背景色 |
ハイライトカラー | 入力フォーカスを取得するときに強調表示される境界線の背景色 |
ハイライトの太さ | ハイライト表示された境界線の幅 |
安心 | キャンバス コントロールの 3D 効果。 デフォルト値は FLAT、その他のオプション値は SUNKEN、RAISED、GROOVE、RIDGE です。 |
スクロール領域 | タプル (x1,y1,x2,y2) で定義される 4 倍子。4 倍は、キャンバスの幅 w と高さ h、およびキャンバス上のすべてのコントロールの最小 x 座標と最大 y 座標とともに計算されます。具体的な計算式は次のとおりです。 XL=x1-x YT=y1-y XR=w-x2+x YB=h-y2+y ウィンドウ内の Canvas の左上隅の座標が (0,0) でない場合、 Canvas の左上隅の座標を追加する必要があります。 |
背景を選択 | キャンバス内の要素が選択されると、対応する背景色が表示されます。 |
選択境界幅 | キャンバス内の要素が選択されているときの境界線の幅 |
フォアグラウンドを選択 | キャンバス内の要素が選択されると、対応する前景色が |
州 | キャンバスの状態を NORMAL または DISABLED に設定します。デフォルト値は NORMAL です。 |
テイクフォーカス | Tab キーによって入力フォーカスを取得できるかどうかを定義します |
幅 | キャンバス コントロールの幅を定義します |
xscrollincrement | このオプションは、キャンバスの水平スクロールの「ステップ サイズ」を指定します。たとえば、「3c」は 3 センチメートルを意味し、選択できる単位は「i」(インチ)、「m」(ミリメートル)、「p」です。 ' (DPI、約 '1i ' は '72p' に等しい)。 デフォルト値は 0 です。これは、任意の位置まで水平方向にスクロールできることを意味します。 |
xscrollコマンド | 水平スクロールを制御するコールバック関数を設定する |
yscrollincrement | xscrollincrement パラメータと似ていますが、垂直スクロールの粒度を制御します。 |
yscrollコマンド | 垂直スクロールを制御するコールバック関数を設定する |
18.1.1 背景(bg) | |
キャンバス コントロールの背景色を定義します。 |
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root,bg='blue')
b1.pack()
root.mainloop()
結果:
18.1.2 borderwidth(bd) は、
キャンバス コントロールの境界線の幅を定義します。効果を発揮するにはリリーフオプションと併用する必要があります。
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root,bg='blue',
bd=10,relief='groove')
b1.pack()
root.mainloop()
結果:
18.1.3 closeenough は、
キャンバス コントロール内の要素内または要素上でマウスがどれだけ近づいているかを定義します。は浮動小数点数です。デフォルト値は 1.0 です。
18.1.4 confine は、
canvas コンポーネントが、scrollregion オプションで指定された範囲を超えたスクロールを許可するかどうかを指定します。
18.1.5 カーソルは、
キャンバス コントロール内のマウスの形状を設定します。
18.1.6 高さ
キャンバスコントロールの高さを設定します。デフォルトの単位はピクセルです。
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root,bg='blue',
width=200,height=200,
bd=10,relief='groove')
b1.pack()
root.mainloop()
結果:
18.1.7 highlightbackground、highlightcolor、highlightthickness は、
入力フォーカスがある場合とない場合の境界線の背景色を設定します。takefocus=True を設定する必要があります。デフォルトでは、キャンバス コントロールは Tab 経由で入力フォーカスを取得できないためです。
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root,bg='green',
width=200,height=200,
highlightbackground='blue',
highlightcolor='red',
highlightthickness=10,
takefocus=1)
b1.pack()
root.mainloop()
結果:
18.1.8
レリーフ キャンバス コントロールの 3D 効果については、セクション 3.3.5 を参照してください。
18.1.9 スクロール領域
タプル (x1,y1,x2,y2) によって定義される 4 つ組。4 倍は、キャンバスの幅 w と高さ h、およびキャンバス上のすべてのコントロールの最小 x 座標と最大 y 座標とともに計算されます。具体的な計算式は次のとおりです。
XL=x1-x
YT=y1-y
XR=w-x2+x
YB=h-y2+y
ウィンドウ内の Canvas の左上隅の座標が (0,0) でない場合、 Canvas を追加する必要があります
。18.1.10 takefocusの左上隅の座標は、
キャンバス コントロールが Tab キーを通じて入力フォーカスを取得できるかどうかを定義します。
18.1.11 width は、
キャンバス コントロールの幅 (x 方向) を定義します。デフォルトの単位はピクセルです。
18.1.12 xscrollincrement は、
キャンバス コントロールの水平スクロールの粒度を定義します。0 の場合は、任意の位置までスクロールできることを意味します。正の数の場合は、その値の整数倍の位置までのみスクロールできます。
18.1.13 水平スクロールを制御する xscrollcommand のコールバック関数
。通常、コントロールの .set() メソッドに設定されます。水平スクロールバーについては、これまでの他の章を参照してください。
18.1.14 yscrollincrement は、
キャンバス コントロールの垂直スクロールの粒度を定義します。「xscrollincrement」を参照してください。
18.1.15 yscrollコマンド
垂直スクロールを制御するコールバック関数。通常、コントロールの .set() メソッドに設定されます。垂直スクロール バーについては、これまでの他の章を参照してください。