Canvas は中国語でキャンバスを意味し、Tkinter モジュールの長方形の領域に対応し、ユーザーに描画用のスペースを提供し、キャンバス上にグラフィック、テキスト、楕円、ボタン、その他のコンポーネントを配置したり、パターンを描画したりすることもできます。
Canvas コンポーネントを使用する前に、まず対応する画面座標系を学習する必要があります。
通常、コンピュータでは画像の単位としてピクセルが使用され、各ピクセルは 2 つの値を持ちます。Canvas コンポーネントでは、対応するウィンドウの左上隅の座標は (0,0) であり、これは平面直交座標系でのことを意味します。図に示すように、対応する x 軸と y 軸は両方とも 0 で、ウィンドウの右下隅の座標は x 軸と Y 軸の 2 つの最大値になります。
Canvas キャンバスにコンポーネントを配置するときは、コンポーネントの座標が正しいことを確認する必要があります。
Canvas の構文構造は次のとおりです。
my_canvas=Canvas(親クラス、オプション)
親クラスは、配置した上層ウィンドウの名前です。オプションには、bd、bg、Continue、cursor、height、width、highlightcolor、relief、scrollregion などが含まれます。これらのオプションは以前に紹介したので説明しません。ここで詳しく説明しすぎます。
Canves コンポーネントを使用してグラフィックを描画するには、create_line、create_rectangle、create_oval、create_arc、create_polygon などのさまざまな方法があります。以下で 1 つずつ紹介します。
構文形式は次のとおりです。
Canvas.create_line(x1,y1,x2,y2,...,xn,yn,options)
このメソッドを使用して、キャンバス上の 2 つまたは n 点の間に直線を描くことができます。最初の 2 つの座標 (x1, y1) が始点、(xn, yn) が終点になります。
コードは次のとおりです。
importtkinterclassTK:def__init__(self):self.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,width=300,height=300,bg='pink')self.canvas.create_line(30, 30,100,200,200,200,300,200,300,300)self.canvas.pack()tkinter.mainloop()m=TK()
効果は次の図に示すとおりです。
選択した座標は、(30,30)->(100,200)->(200,200)->(300,300) です。
四角形を作成するための構文は次のとおりです。
Canvas.create_rectangle(x1,y1,x2,y2、オプション)
長方形を決定するために必要な座標は 2 つだけなので、必要なのは左上隅と右下隅の座標 (x1, y1) と (x2, y2) だけです。コードは次のとおりです。
importtkinterclassTK:def__init__(self):self.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,width=300,height=300,bg='pink')self.canvas.create_rectangle(100,100,200,200) self.canvas.pack()tkinter.mainloop()m=TK()
動作は図のようになります。
構文形式は次のとおりです。
Canvas.create.oval(x1,y1,x2,y2,オプション)
4 つの座標に対応する位置は図に示すとおりです。
構文形式は次のとおりです。
Canvas.create_arc(x1,y1,x2,y2,start=角度、extent=幅、オプション)
このうち、座標は上図の楕円に対応し、start の値は円弧の開始角度に対応し、extent は円弧の反時計回りの角度範囲に対応します。
コードは次のとおりです。
importtkinterclassTK:def__init__(self):self.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,width=300,height=300,bg='pink')self.canvas.create_arc(60, 60,220,220,start=0,extent=120,fill='blue')self.canvas.pack()tkinter.mainloop()m=TK()
動作は図のようになります。
構文形式は次のとおりです。
Canvas.create_polygon(x1,y1,x2,y2,...xn,yn,オプション)
各座標は位置に対応し、最初の座標が最初の頂点となり、順にリンクされ、最後の座標が自動的に多角形を閉じます。
コードは次のとおりです。
importtkinterclassTK:def__init__(self):self.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,width=300,height=300,bg='pink')self.canvas.create_polygon(150, 0,200,100,300,100,200,185,280,280,150,230,20,280,100,185,0,100,100,100,fill='red')self.canvas.pack()tkinter.mainloop()m=TK()
実行図は次のとおりです。
オプションのパラメータには、ダッシュ、輪郭、幅、幅などを変更することで、必要なグラフィックを描画できます。
もちろん、canvas には他の機能もあります。次のセクションの例でも使用します。