python10.pptx




10-8. 하나의 버튼이 있는 윈도우를 생성해보자.


 

1
2
3
4
5
6
7
from tkinter import *
 
window = Tk()
button = Button(window, text="클릭하세요!")
button.pack()
 
window.mainloop()
cs

 








10-9. 엔트리와 레이블 위젯도 사용해보자


 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from tkinter import *
 
window = Tk()
 
L1 = Label(window, text="화씨"# Label:텍스트 표시
L2 = Label(window, text="섭씨")
L1.pack()
L2.pack()
 
e1 = Entry(window) # Entry:사용자로부터 입력 받는 부분
e2 = Entry(window)
e1.pack()
e2.pack()
 
b1 = Button(window,text="화씨->섭씨")
b2 = Button(window,text="섭씨->화씨")
b1.pack()
b2.pack()
 
window.mainloop()
cs

 




* 배치 관리자

1. 격자 배치 관리자

2. 절대 배치 관리자


10-11. 격자 배치 관리자

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from tkinter import *
 
window = Tk()
 
l1 = Label(window, text="화씨"# Label:텍스트 표시
l2 = Label(window, text="섭씨")
l1.grid(row=0, column=0)
l2.grid(row=1, column=0)
 
e1 = Entry(window) # Entry:사용자로부터 입력 받는 부분
e2 = Entry(window)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
 
b1 = Button(window,text="화씨->섭씨")
b2 = Button(window,text="섭씨->화씨")
b1.grid(row=2, column=0)
b2.grid(row=2, column=1)
 
window.mainloop()
cs

 





10-12. 버튼 이벤트 처리

 

1
2
3
4
5
6
7
8
9
from tkinter import *
 
def process():
    print("안녕하세요?")
 
window = Tk()
button = Button(window, text="클릭하세요!", command=process)
button.pack()
window.mainloop()
cs

 




10-15. 앞의 예제에서 섭씨->화씨버튼을 클릭하면 사용자가 입력한 섭씨온도가 화씨온도로 변환되도록 코드를 추가해보시오

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from tkinter import *
 
def process1():
    temperature = float(e1.get())
    mytemp = (temperature - 32* 5/9
    e2.insert(0str(mytemp))
    
def process2():
    temperature = float(e2.get())
    mytemp = 9/5 * temperature + 32
    e1.insert(0str(mytemp))
   
    
window = Tk()
 
l1 = Label(window, text="화씨"# Label:텍스트 표시
l2 = Label(window, text="섭씨")
l1.grid(row=0, column=0)
l2.grid(row=1, column=0)
 
e1 = Entry(window) # Entry:사용자로부터 입력 받는 부분
e2 = Entry(window)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
 
b1 = Button(window,text="화씨->섭씨", command=process1)
b2 = Button(window,text="섭씨->화씨", command=process2)
b1.grid(row=2, column=0)
b2.grid(row=2, column=1)
 
window.mainloop()
cs

 



10-16

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from tkinter import *
 
def process1():
    temperature = float(e1.get())
    mytemp = (temperature - 32* 5/9
    e2.insert(0str(mytemp))
    
def process2():
    temperature = float(e2.get())
    mytemp = 9/5 * temperature + 32
    e1.insert(0str(mytemp))
   
    
window = Tk()
 
l1 = Label(window, text="화씨", font="helvetica 16 italic"# Label:텍스트 표시
l2 = Label(window, text="섭씨", font="helvetica 16 italic"
l1.grid(row=0, column=0)
l2.grid(row=1, column=0)
 
e1 = Entry(window, bg="yellow", fg="white"# Entry:사용자로부터 입력 받는 부분
e2 = Entry(window, bg="yellow", fg="white")
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
 
b1 = Button(window,text="화씨->섭씨", command=process1)
b2 = Button(window,text="섭씨->화씨", command=process2)
b1.grid(row=2, column=0)
b2.grid(row=2, column=1)
 
window.mainloop()
cs

 



10-18. 절대 위치 배치 관리자 - 화면에 5개의 버튼을 절대 위치를 주어서 배치해보시오

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from tkinter import *
    
window = Tk()
 
= Label(window, text="박스 #1", bg="red", fg="white")
w.place(x=0, y=0)
= Label(window, text="박스 #2", bg="green", fg="black")
w.place(x=20, y=20)
= Label(window, text="박스 #3", bg="blue", fg="white")
w.place(x=40, y=40)
= Label(window, text="박스 #4", bg="black", fg="red")
w.place(x=60, y=60)
= Label(window, text="박스 #5", bg="yellow", fg="black")
w.place(x=80, y=80)
 
window.mainloop()
cs

 






* 캔버트 위젯


10-21. 다음과 같이 마우스를 움직여서 화면에 그림을 그리는 윈도우의 그림판과 비슷한 프로그램을 작성해보자.

 

1
2
3
4
5
6
7
8
9
10
11
12
from tkinter import *
 
def paint(event):
    x1, y1 = ( event.x-3 ), ( event.y+3 )
    x2, y2 = ( event.x-3 ), ( event.y+3 )
    canvas.create_oval( x1,y1,x2,y2,fill = "black")
 
window = Tk()
canvas = Canvas(window)
canvas.pack()
canvas.bind("<B1-Motion>",paint)
window.mainloop()
cs

 



10-22. 앞의 MyPaint 프로그램에서 색상을 변경할 수 있도록 하여보자. 캔버스 위젯 아래에 버튼 “빨강색”을 추가하고 이 버튼을 누르면 색상이 빨강색으로 변경되게 하자

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from tkinter import *
 
def paint(event):
    x1, y1 = ( event.x-3 ), ( event.y-3 )
    x2, y2 = ( event.x+3 ), ( event.y+3 )
    canvas.create_oval( x1,y1,x2,y2,fill = mycolor)
 
def change_color():
    global mycolor
    mycolor = "red"
 
window = Tk()
canvas = Canvas(window)
canvas.pack()
canvas.bind("<B1-Motion>",paint)
button = Button(window, text="빨간색", command=change_color)
button.pack()
window.mainloop()
cs

 




10-24. 녹색노란색으로 변경하는 버튼을 추가하시오

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from tkinter import *
 
mycolor = "white"
def paint(event):
    x1, y1 = ( event.x-3 ), ( event.y-3 )
    x2, y2 = ( event.x+3 ), ( event.y+3 )
    canvas.create_oval( x1,y1,x2,y2,fill = mycolor)
 
def change_color1():
    global mycolor
    mycolor = "red"
    
def change_color2():
    global mycolor
    mycolor = "green"
 
def change_color3():
    global mycolor
    mycolor = "yellow"
    
window = Tk()
canvas = Canvas(window)
canvas.pack()
canvas.bind("<B1-Motion>",paint)
button1 = Button(window, text="빨간색", command=change_color1)
button2 = Button(window, text="녹색", command=change_color2)
button3 = Button(window, text="노란색", command=change_color3)
 
button1.pack()
button2.pack()
button3.pack()
 
window.mainloop()
cs

 





10-28. 계산기 프로그램(전체)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
from tkinter import *
 
window = Tk()
window.title("My Calculator")
display = Entry(window, width=33, bg="yellow")
display.grid(row=0, column=0, columnspan=5)
 
button_list = [
'7''8''9''/''C',
'4''5''6''*'' ',
'1''2''3''-'' ',
'0''.''=''+'' ' ]
 
row_index = 1
col_index = 0
 
for button_text in button_list:
    Button(window, text=button_text, width=5).grid(row=row_index, column=col_index)
    col_index += 1
    if col_index > 4:
        row_index += 1
        col_index = 0
        
def click(key):
    if (key == "="):
        result = eval(display.get())
        s = str(result)
        display.insert(END,"="+s)
    else:
        display.insert(END, key)
 
row_index = 1
col_index = 0
 
for button_text in button_list:
    def process(t=button_text):
        click(t)
    Button(window, text=button_text, width=5,
           command=process).grid(row=row_index, column=col_index)
    col_index += 1
    if col_index > 4:
        row_index += 1
        col_index = 0
        
window.mainloop()
cs

 













'PYTHON > TRAINNING' 카테고리의 다른 글

PYTHON 9장 리스트와 딕셔너리  (0) 2018.01.08
PYTHON 8장 프로젝트  (2) 2018.01.08
PYTHON 7장 함수  (1) 2018.01.08
PYTHON 6장 반복문  (0) 2018.01.06
PYTHON 5장 조건문  (0) 2018.01.06
Posted by 너래쟁이
: