|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 yjx45 于 2020-8-29 09:40 编辑
- from tkinter import *
- from tkinter import colorchooser
- root = Tk()
- w = Canvas(root, width = 1000, height = 650, background = "yellow")
- w.grid(row = 0, columnspan = 2, padx = 5, pady = 5)
- #选择颜色
- def setcolour():
- fileName = colorchooser.askcolor()
- return fileName
- b1 = Button(root, text = "选择颜色", command = setcolour)
- b1.grid(row = 1, column = 1)
- i = setcolour()
- #判断颜色
- if i[1] == (255,255,255):
- k = "white"
- elif i[1] == (0,0,0):
- k = "black"
- elif i[1] == (255,0,0):
- k = "red"
- elif i[1] == (0,255,0):
- k = "green"
- elif i[1] == (0,0,255):
- k = "blue"
- elif i[1] == (128,0,128):
- k = "purple"
- elif i[1] == (255,128,255):
- k = "pink"
- elif i[1] == (255,128,0):
- k = "orange"
- elif i[1] == (192,192,192):
- k = "silver"
- elif i[1] == (128,64,0):
- k = "brown"
- else:
- print("对不起,该程序暂不支持您选择的颜色哦,请重试")
- k = None
- #删除按键
- b2 = Button(text = "DELETE ALL", command = (lambda x = ALL : w.delete(x)))
- b2.grid(row = 1)
- #绘图
- def paint(event, color):
- x1,y1 = (event.x - 2),(event.y - 2)
- x2,y2 = (event.x + 2),(event.y + 2)
- w.create_oval(x1, y1, x2, y2, fill = color, outline = color)
- w.bind("<B1-Motion>", paint(color = k))
- Label("按住鼠标左键,开始绘画吧").grid(row = 2, columnspan = 2, pady = 5)
- mainloop()
复制代码
一共有三处问题
帮你修改了,并做了注释。
- from tkinter import *
- from tkinter import colorchooser
- root = Tk()
- w = Canvas(root, width = 1000, height = 650, background = "yellow")
- w.grid(row = 0, columnspan = 2, padx = 5, pady = 5)
- #选择颜色
- def setcolour():
- fileName = colorchooser.askcolor()
- return fileName
- b1 = Button(root, text = "选择颜色", command = setcolour)
- b1.grid(row = 1, column = 1)
- i = setcolour()
- #判断颜色
- #错误1:这后面的颜色都需要改,改为十六进制颜色表示
- if i[1] == '#ffffff':
- k = "white"
- elif i[1] == '#000000':
- k = "black"
- elif i[1] == '#ff0000':
- k = "red"
- elif i[1] == '#00ff00':
- k = "green"
- elif i[1] == '#0000ff':
- k = "blue"
- elif i[1] == '#800080':
- k = "purple"
- elif i[1] == '#ff80ff':
- k = "pink"
- elif i[1] == '#ff8000':
- k = "orange"
- elif i[1] == '#c0c0c0':
- k = "silver"
- elif i[1] == '#804000':
- k = "brown"
- else:
- print("对不起,该程序暂不支持您选择的颜色哦,请重试")
- k = None
- #删除按键
- b2 = Button(text = "DELETE ALL", command = (lambda x = ALL : w.delete(x)))
- b2.grid(row = 1)
- #绘图
- def paint(event, color):
- x1,y1 = (event.x - 2),(event.y - 2)
- x2,y2 = (event.x + 2),(event.y + 2)
- w.create_oval(x1, y1, x2, y2, fill = color, outline = color)
- #错误2:bind绑定,缺少了一个event参数,需要写成下面这种形式
- w.bind("<B1-Motion>", lambda event:paint(event,k))
- #错误3:Label创建写错了,没有写控件的主体是谁,后面的参数也没有写关键字。
- Label(root,text="按住鼠标左键,开始绘画吧").grid(row = 2, columnspan = 2, pady = 5)
- mainloop()
复制代码
|
|