from tkinter import *
from tkinter import ttk
root=Tk()
h=ttk.Scrollbar(root, orient=HORIZONTAL)
v=ttk.Scrollbar(root, orient=VERTICAL)
canvas=Canvas(root, scrollregion=(0,0,1000,1000), yscrollcommand=v.set, xscrollcommand=h.set)
h['command']=canvas.xview
v['command']=canvas.yview
ttk.Sizegrip(root).grid(column=1, row=1, sticky=(S,E))
canvas.grid(column=0, row=0, sticky=(N,W,E,S))
h.grid(column=0, row=1, sticky=(W,E))
v.grid(column=1, row=0, sticky=(N,S))
root.grid_columnconfigure(0,weight=1)
root.grid_rowconfigure(0,weight=1)
lastx, lasty=0,0
def xy(event):
global lastx, lasty
lastx, lasty=canvas.canvasx(event.x), canvas.canvasy(event.y)
def setColor(newcolor):
global color
color=newcolor
canvas.dtag('all', 'paletteSelected')
canvas.itemconfigure('palette', outline='white')
canvas.addtag('paletteSelected', 'withtag','palette%s' % color)
canvas.itemconfigure('paletteSelected',outline='#999999')
def addLine(event):
global lastx, lasty
x,y=canvas.canvasx(event.x), canvas.canvasy(event.y)
canvas.create_line((lastx, lasty, x, y ), fill=color, width=5, tags='currentline')
lastx, lasty=x,y
def doneStroke(event):
canvas.itemconfigure('currentline', width=1)
canvas.bind("<Button-1>",xy)
canvas.bind("<B1-Motion>",addLine)
canvas.bind("<B1-ButtonRelease>", doneStroke)
id=canvas.create_rectangle((10,10,30,30), fill="red", tags=('palette', 'palettered'))
canvas.tag_bind(id, "<Button-1>", lambda x:setColor("red"))
id=canvas.create_rectangle((10,35,30,55), fill="blue", tags=('palette', 'paletteblue'))
canvas.tag_bind(id, "<Button-1>", lambda x: setColor("blue"))
id=canvas.create_rectangle((10,60,30,80),fill="black", tags=('palette', 'paletteblack','paletteSelected'))
canvas.tag_bind(id, "<Button-1>", lambda x: setColor("black"))
setColor('black')
canvas.itemconfigure('palette', width=5)
root.mainloop()
'Python > tkinter' 카테고리의 다른 글
Menu(), status bar and toolbar (0) | 2015.05.06 |
---|---|
using class (0) | 2015.05.06 |
event (0) | 2015.05.06 |
name, password (0) | 2015.05.06 |