python之canvas 畫布


canvas 畫布

canvas(畫布)是一個矩形區域,可以放置圖形、圖像、組件等。

 

from tkinter import *
import random
from tkinter import messagebox


class Application(Frame):
    """一個經典的GUI程序的寫法"""

    def __init__(self, master=None):
        super().__init__(master)  # super代表的是父類的定義,而不是父類對象
        self.master = master
        self.pack()
        self.createWidget()

    def createWidget(self):
        """創建組件"""
        self.canvas = Canvas(self, width=400, height=350, bg='blue')
        self.canvas.pack()
        line = self.canvas.create_line(12, 12, 24, 24, 39, 52)
        # 畫一條直線
        rect = self.canvas.create_rectangle(50, 50, 100, 100)
        # 畫一個矩形
        oval = self.canvas.create_oval(50, 50, 100, 100)
        # 畫一個圓,坐標兩雙,為圓的邊界矩形左上角和底部右下角

        global pthoto
        pthoto = PhotoImage(file='20191117174112450.gif')
        self.canvas.create_image(160, 160, image=pthoto)

        Button(self, text='畫十個圓', command=self.tenOval).pack(side='left')

    def tenOval(self):
        for i in range(0, 10):
            x1 = random.randrange(int(self.canvas['width']) / 2)
            x2 = random.randrange(int(self.canvas['height']) / 2)
            y1 = 9 + random.randrange(int(self.canvas['width']) / 2)
            y2 = 9 + random.randrange(int(self.canvas['height']) / 2)
            self.canvas.create_oval(x1, x2, y1, y2)


if __name__ == "__main__":
    root = Tk()
    root.geometry('400x400+200+200')
    app = Application(master=root)
    root.mainloop()

 

 

在這里插入圖片描述
在這里插入圖片描述

————————————————
版權聲明:本文為CSDN博主「whyfail」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_44733660/article/details/103111094


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM