본문 바로가기

[Python] tkinter Canvas/Treeview(Table) 사용하기

by rudals.kim 2021. 1. 13. 댓글 개
반응형

 1. Canvas 

canvas 생성 후 arc 도형을 그려보았습니다.

from tkinter import *

window = Tk()
window.title("tkinter 테스트")
window.geometry('320x240')

canvas = Canvas(window, bg="blue", height=200, width=300)

coord = 10, 50, 240, 210
arc = canvas.create_arc(coord, start=0, extent=150, fill="red")

canvas.pack()

window.mainloop()

 

 2. Treeview(Table) 

Treeview 위젯이지만 Table형식으로도 사용 가능합니다.

from tkinter import *
from tkinter import ttk

window = Tk()
window.title("tkinter 테스트")
window.geometry('320x240')

tree = ttk.Treeview(window)

tree["columns"] = ("one", "two")

tree.heading("#0", text="item")
tree.heading("#1", text="column A")
tree.heading("#2", text="column B")

tree.column("one", width=60)
tree.column("two", width=60)

tree.insert("", 0, "dir1", text="Dir 1")

id2 = tree.insert("", "end", "dir2", text="Dir 2")
tree.insert(id2, "end", text="sub dir 2-1", values=("2-1-A", "2-1-B"))
tree.insert(id2, "end", text="sub dir 2-2", values=("2-2-A", "2-2-B"))

tree.pack()

window.mainloop()

 

서브디렉토리를 만들지 않으면 Table 형식으로 사용 할 수 있습니다.

Treeview의 insert 아이템의 이름을 변경하고 싶은 경우 tree.item(insert시 반환된 id, text="변경된 Text") 이런식으로 변경하시면 됩니다.

from tkinter import *
from tkinter import ttk
from tkinter import messagebox


def clicked():
    tree.item(id2,text="변경된 디렉토리 이름")

window = Tk()
window.title("tkinter 테스트")
window.geometry('320x280')

tree = ttk.Treeview(window)

tree["columns"] = ("one", "two")

tree.heading("#0", text="item")
tree.heading("#1", text="column A")
tree.heading("#2", text="column B")

tree.column("one", width=60)
tree.column("two", width=60)

tree.insert("", 0, "dir1", text="Dir 1")

id2 = tree.insert("", "end", "dir2", text="Dir 2")
tree.insert(id2, "end", text="sub dir 2-1", values=("2-1-A", "2-1-B"))
tree.insert(id2, "end", text="sub dir 2-2", values=("2-2-A", "2-2-B"))

tree.pack()
tree.grid(row=1, column=1)


btn = Button(window,text='아이템 이름변경', command=clicked)
btn.grid(row=2, column=1)


window.mainloop()

 

실행하여 아래 버튼을 클릭하면 "Dir 2"의 이름이 "변경된 디렉토리 이름"으로 바뀝니다.

반응형

댓글