[英]Python GUI Programming and Tkinter
我需要你的帮助。 我将在 canvas 上放置一个图像,并在其上使用点制作颜色研究程序但是,使用点对图像进行了凸起和着色,但没有实现使用 colorcoiser 或 askcolor 以流畅的方式改变颜色。 我应该如何以及在哪里修改这部分? 下面是我的代码:
from tkinter import *
from tkinter import Menu
import tkinter.font
from tkinter.colorchooser import *
from tkinter import messagebox
from tkinter import colorchooser
w = 300
h = 300
def menu_new(event=None):
print("close")
def menu_close(event=None):
print("Game Close!")
window.destroy()
window.quit()
def menu_pause(event=None):
print("Game Pause!")
global running
running = False
def drawDot( event ):
x1, y1 = ( event.x - 1 ), ( event.y - 1 )
x2, y2 = ( event.x + 1 ), ( event.y + 1 )
canvas.create_oval( x1, y1, x2, y2, fill="blue")
canvas.colorchooser(fill())
window = Tk()
canvas = Canvas(window, width=w, height=h)
canvas.pack(expand = YES, fill = BOTH)
canvas.bind( "<B1-Motion>", drawDot )
window.title("색칠 공부를 해보자!")
window.geometry("300x300+100+100")
window.resizable(False, False)
#canvas = tkinter.Canvas(window, relief="solid", bd=2)
#oval=canvas.create_oval(100, 200, 150, 250, fill="blue", width=3)
color = colorchooser.askcolor()
doraemon=tkinter.PhotoImage(file="doraemon.png")
canvas.create_image(20, 20, anchor=NW, image=doraemon)
message = Label( window, text = "마우스를 드래그하면 점들이 그려집니다." )
message.pack( side = BOTTOM )
menu = Menu(window)
#파일 메뉴 생성
file_menu = Menu(menu)
file_menu.add_command(label='GalagaGame')
file_menu.add_separator()
file_menu.add_command(label="New Game", accelerator="Ctrl+N", underline=0,
command=menu_new)
file_menu.add_separator()
file_menu.add_command(label="Quit Game", accelerator="Ctrl+Q", underline=0, command=menu_close)
file_menu.add_separator()
file_menu.add_command(label="Pause Game", accelerator="Pause", underline=0, command=menu_pause)
menu.add_cascade(label='About Game', menu=file_menu)
#헬프 메뉴 생성
help_menu = Menu(menu)
help_menu.add_command(label='Producer')
help_menu.add_separator()
help_menu.add_command(label='About')
menu.add_cascade(label='Help', menu=help_menu)
#이벤트 처리 부분
window.bind("<Control-n>", menu_new)
window.bind("<Control-q>", menu_close)
window.config(menu=menu)
window.mainloop()
window.config(menu=menu)
window.mainloop()
我假设您想使用colorchooser
的选定颜色更改点的颜色。
您可以看到的第一件事是colorchooser
返回((R,G,B),'hex')
的元组,例如:
((255.99609375, 66.2578125, 66.2578125), '#ff4242')
因此,您可以将元组的最后一项传递给您的fill
颜色:
def drawDot( event ):
x1, y1 = ( event.x - 1 ), ( event.y - 1 )
x2, y2 = ( event.x + 1 ), ( event.y + 1 )
canvas.create_oval( x1, y1, x2, y2, fill=color[-1])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.