|
キャンバスに様々な形を描くことができます。 次のコード例は、それらのいくつかを示します。
#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
ZetCode Tkinter tutorial
In this script, we draw basic
shapes on the canvas.
Author: Jan Bodnar
Last modified: July 2017
Website: www.zetcode.com
"""
from tkinter import Tk, Canvas, Frame, BOTH
class Example(Frame):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.master.title("Shapes")
self.pack(fill=BOTH, expand=1)
canvas = Canvas(self)
canvas.create_oval(10, 10, 80, 80, outline="#f11",
fill="#1f1", width=2)
canvas.create_oval(110, 10, 210, 80, outline="#f11",
fill="#1f1", width=2)
canvas.create_rectangle(230, 10, 290, 60,
outline="#f11", fill="#1f1", width=2)
canvas.create_arc(30, 200, 90, 100, start=0,
extent=210, outline="#f11", fill="#1f1", width=2)
points = [150, 100, 200, 120, 240, 180, 210,
200, 150, 150, 100, 200]
canvas.create_polygon(points, outline='#f11',
fill='#1f1', width=2)
canvas.pack(fill=BOTH, expand=1)
def main():
root = Tk()
ex = Example()
root.geometry("330x220+300+300")
root.mainloop()
if __name__ == '__main__':
main()
ウィンドウには、円、楕円、長方形、円弧、多角形の 5 種類の図形が描画されます。 アウトラインは赤で描かれ、緑色で囲まれています。 アウトラインの幅は 2 ピクセルです。
canvas.create_oval(10, 10, 80, 80, outline="#f11",
fill="#1f1", width=2)
ここでは、create_oval() メソッドを使用して円アイテムを作成します。 最初の 4 つのパラメータは円の境界ボックス座標です。 つまり、円が描画されるボックスの左上と右下の点の x 座標と y 座標です。
canvas.create_rectangle(230, 10, 290, 60,
outline="#f11", fill="#1f1", width=2)
長方形のアイテムを作成します。 座標は、描画される矩形のバウンディングボックスです。
canvas.create_arc(30, 200, 90, 100, start=0,
extent=210, outline="#f11", fill="#1f1", width=2)
このコード行は円弧を作成します。 円弧は円周の一部です。 バウンディングボックスを提供します。 開始パラメータは円弧の開始角度です。 範囲は角度の大きさです。
points = [150, 100, 200, 120, 240, 180, 210,
200, 150, 150, 100, 200]
canvas.create_polygon(points, outline='#f11',
fill='#1f1', width=2)
ポリゴンが作成されます。 これは、複数のコーナーを持つ形です。 Tkinter にポリゴンを作成するには、ポリゴン座標のリストをcreate_polygon() メソッドに渡します。

Top
|