#encoding=utf-8
from tkinter import *
import random
class Application(Frame):
def __init__(self, master=None):
super().__init__(master)
self.master=master
self.pack()
self.createWidget()
def createWidget(self):
self.canvas = Canvas(self, width=800, height=600, bg='green')
self.canvas.pack()
# 画一条直线
self.line = self.canvas.create_line(10, 10, 30, 20, 40, 50) # 坐标(10,10),(30,20),(40,50)
# 画一个矩形
self.rect = self.canvas.create_rectangle(50, 50, 100, 100) # 左上角坐标(50, 50) 右下角坐标(100,100)
# 画一个椭圆,坐标两双,为椭圆的边界矩形左上角和右下角
self.oval = self.canvas.create_oval(50, 50, 100, 100) # 绘制如上巨星的内切圆
#global photo
self.photo = PhotoImage(file="000.gif")
self.canvas.create_image(550, 100, image=self.photo)
Button(self, text='随机画出十个矩形', command=self.draw50Recg).pack(side='left')
def draw50Recg(self):
for i in range(0, 10):
x1 = random.randrange(int(self.canvas['width'])/2)
y1 = random.randrange(int(self.canvas['height'])/2)
x2 = x1 + random.randrange(int(self.canvas['height'])/2)
y2 = y1 + random.randrange(int(self.canvas['height'])/2)
self.canvas.create_rectangle(x1, y1, x2, y2)
if __name__=="__main__":
root = Tk()
root.title('my window')
root.geometry('500x300')
app = Application(master=root)
root.mainloop()

老师,为啥视频里,这里没有加self呢,我自己加上之后没啥区别。不加的化,这个变量就是灰色的,
为什么这里画一个图形啥的 不需要调用pack()呢