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