Canvas ซึ่งหมายถึงผืนผ้าใบในภาษาจีน สอดคล้องกับพื้นที่สี่เหลี่ยมในโมดูล Tkinter ทำให้ผู้ใช้มีพื้นที่ในการวาดภาพ พวกเขาสามารถวางกราฟิก ข้อความ วงรี หรือปุ่มและส่วนประกอบอื่น ๆ บนผืนผ้าใบ และยังสามารถวาดลวดลาย
ก่อนที่จะใช้ส่วนประกอบ Canvas เราต้องเรียนรู้ระบบพิกัดหน้าจอที่เกี่ยวข้องก่อน
โดยทั่วไปเราใช้พิกเซลเป็นหน่วยสำหรับรูปภาพในคอมพิวเตอร์ และแต่ละพิกเซลจะมี 2 ค่า ในส่วนประกอบ Canvas พิกัดของมุมซ้ายบนของหน้าต่างที่เกี่ยวข้องคือ (0,0) ซึ่งหมายความว่าในระบบพิกัดสี่เหลี่ยมระนาบ แกน x และแกน y ที่สอดคล้องกันนั้นเป็นทั้ง 0 และพิกัดของมุมขวาล่างของหน้าต่างคือค่าสูงสุดสองค่าจากแกน x และแกน Y ดังแสดงในรูป:
เมื่อเราวางส่วนประกอบลงใน Canvas Canvas เราต้องตรวจสอบให้แน่ใจว่าพิกัดของส่วนประกอบต่างๆ นั้นถูกต้อง
โครงสร้างไวยากรณ์ของ Canvas คือ:
my_canvas=Canvas(คลาสพาเรนต์, ตัวเลือก)
คลาสพาเรนต์คือชื่อของหน้าต่างชั้นบนที่เราวางไว้ ตัวเลือกต่างๆ ได้แก่ bd, bg, ดำเนินการต่อ, เคอร์เซอร์, ความสูง, ความกว้าง, สีไฮไลต์, การนูน, ขอบเขตการเลื่อน ฯลฯ ตัวเลือกเหล่านี้ถูกนำมาใช้ก่อนหน้านี้ ดังนั้นฉันจะไม่ไป อธิบายรายละเอียดมากเกินไปที่นี่
มีหลายวิธีในการวาดกราฟิกโดยใช้ส่วนประกอบ Canves รวมถึง create_line, create_rectangle, create_oval, create_arc และ create_polygon เราจะแนะนำทีละวิธีด้านล่าง
รูปแบบไวยากรณ์เป็นดังนี้:
canvas.create_line(x1,y1,x2,y2,...,xn,yn,ตัวเลือก)
เราสามารถใช้วิธีนี้เพื่อวาดเส้นตรงระหว่างจุดสองจุดหรือ n จุดบนผืนผ้าใบ พิกัดสองตัวแรก (x1, y1) เป็นจุดเริ่มต้นและ (xn, yn) เป็นจุดสิ้นสุด
รหัสมีดังนี้:
importtkinterclassTK:def__init__(ตนเอง):self.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,ความกว้าง=300,ความสูง =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.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,width=30 0,ความสูง=300,bg='สีชมพู')self.canvas.create_rectangle(100,100,200,200)self.canvas.pack()tkinter.mainloop()m=TK()
การดำเนินการดังแสดงในรูป:
รูปแบบไวยากรณ์เป็นดังนี้:
canvas.create.oval (x1, y1, x2, y2, ตัวเลือก)
ตำแหน่งที่สอดคล้องกับพิกัดทั้งสี่ดังแสดงในรูป:
รูปแบบไวยากรณ์เป็นดังนี้:
canvas.create_arc (x1, y1, x2, y2, เริ่มต้น = มุม, ขอบเขต = ความกว้าง, ตัวเลือก)
พิกัดดังกล่าวสอดคล้องกับวงรีในรูปด้านบน ค่าในการเริ่มต้นสอดคล้องกับมุมเริ่มต้นของส่วนโค้ง และขอบเขตสอดคล้องกับช่วงมุมทวนเข็มนาฬิกาของส่วนโค้ง
รหัสมีดังนี้:
importtkinterclassTK:def__init__(ตนเอง):self.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,ความกว้าง=300,ความสูง=30 0,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.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 ได้ แน่นอนว่ายังมีฟังก์ชันอื่นๆ อีกด้วย เราจะใช้มันในตัวอย่างในส่วนถัดไป