import random
from tkinter import *
from tkinter import messagebox
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=300,height=400,bg="green") #创建组件
self.canvas.pack()
self.canvas.create_line(30,30,500,500) #画直线
self.canvas.create_rectangle(20,50,80,40)
global photo
photo=PhotoImage(file=r"C:\Users\86137\Documents\mindplus-py\environment\Python3.6.5-64\tcl\tk8.6\images\logo64.gif")
self.canvas.create_image(200,50,image=photo)
Button(self,text="随机生成十个矩形",command=self.confirm).pack(side="left")
def confirm(self):
for x 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["width"] / 2))
y2 = y1+random.randrange(int(self.canvas["height"] / 2))
self.canvas.create_rectangle(x1,y1,x2,y2)
root=Tk()
root.geometry("500x600+300+300")
app=Application(master=root)
root.mainloop()
老师我这个为什么会报错?
Exception in Tkinter callback
Traceback (most recent call last):
File "D:\python\lib\tkinter\__init__.py", line 1892, in __call__
return self.func(*args)
File "D:\python_exec\py02\GUI图形编程\canvas布图.py", line 24, in confirm
x1 = random.randrange(int(self.canvas["width"]/2))
TypeError: unsupported operand type(s) for /: 'str' and 'int'