Python Tkinter |使用 Canvas 类创建不同的形状
在 Tkinter 中, Canvas 类用于在 Canvas 类下定义的一些函数的帮助下创建不同的形状。 Canvas 类创建的任何形状都需要一个画布,因此在创建任何形状之前,需要一个 Canvas 对象并且需要将其打包到主窗口。
Canvas Methods for shapes:
Canvas.create_oval(x1, y1, x2, y2, options = …): It is used to create a oval, pieslice and chord.
Canvas.create_rectangle(x1, y1, x2, y2, options = …): It is used to create rectangle and square.
Canvas.create_arc(x1, y1, x2, y2, options = …) This is used to create an arc.
Canvas.create_polygon(coordinates, options = …) THis is used to create any valid shapes.
我们正在使用一个类来展示有助于创建不同形状的函数的工作原理。
类参数 –
Data members used: master, canvas
Member functions used: create() method
Widgets used: Canvas
Tkinter method used:
Canvas.create_oval()
Canvas.create_rectangle()
Canvas.create_arc()
Canvas.create_polygon()
pack()
title()
geometry()
下面是Python代码——
Python3
# Imports each and every method and class
# of module tkinter and tkinter.ttk
from tkinter import * from tkinter.ttk import * class Shape:
def __init__(self, master = None):
self.master = master
# Calls create method of class Shape
self.create()
def create(self):
# Creates a object of class canvas
# with the help of this we can create different shapes
self.canvas = Canvas(self.master)
# Creates a circle of diameter 80
self.canvas.create_oval(10, 10, 80, 80,
outline = "black", fill = "white",
width = 2)
# Creates an ellipse with horizontal diameter
# of 210 and vertical diameter of 80
self.canvas.create_oval(110, 10, 210, 80,
outline = "red", fill = "green",
width = 2)
# Creates a rectangle of 50x60 (heightxwidth)
self.canvas.create_rectangle(230, 10, 290, 60,
outline = "black", fill = "blue",
width = 2)
# Creates an arc of 210 deg
self.canvas.create_arc(30, 200, 90, 100, start = 0,
extent = 210, outline = "green",
fill = "red", width = 2)
points = [150, 100, 200, 120, 240, 180,
210, 200, 150, 150, 100, 200]
# Creates a polygon
self.canvas.create_polygon(points, outline = "blue",
fill = "orange", width = 2)
# Pack the canvas to the main window and make it expandable
self.canvas.pack(fill = BOTH, expand = 1)
if __name__ == "__main__":
# object of class Tk, responsible for creating
# a tkinter toplevel window
master = Tk()
shape = Shape(master)
# Sets the title to Shapes
master.title("Shapes")
# Sets the geometry and position
# of window on the screen
master.geometry("330x220 + 300 + 300")
# Infinite loop breaks only by interrupt
mainloop()
输出: