**kwargs: Many Keyworded Arguments

  • **kwargs 가변 키워드 인수

  • 모든 입력을 검토해서 원하는 값을 찾을 수 있도록 해줌

1


-클래스 생성 가능

  • get함수 사용해서 딕셔너리 키를 넣지 않아도 오류 발생하지 않게 할 수 있음

2

3


TKinter 모듈

  • 기본적으로 파이썬의 문법과 아주 다름

  • 작동하기 위해서 기본적으로 TK명령을 사용

  • 모든 선택 사항들을 취해서 **kwargs나 선택적 키워드 인수로 바꿈

  • 레이블 생성시 수정할 수 있는 어떤 프로퍼티도 나타나지 않았던 이유


TKinter 위젯 설정 바꾸기

4

5

  • Button

6


  • Entry

텍스트를 입력받는 컴포넌트


버튼을 눌렀을 때 입력값을 레이블에 뜨게 하기

7

  • tkinter모듈의 IntVar()
    tkinter에서 제공하는 변수 클래스 중 하나로, GUI 위젯 간의 데이터 바인딩을 지원함
    예를 들어, 체크박스나 라디오 버튼과 같은 위젯의 상태를 추적하거나 변경할 때 사용할 수 있다.



위젯의 다른 기능

8

from tkinter import *

#Creating a new window and configurations
window = Tk()
window.title("Widget Examples")
window.minsize(width=500, height=500)

#Labels
label = Label(text="This is old text")
label.config(text="This is new text")
label.pack()

#Buttons
def action():
    print("Do something")

#calls action() when pressed
button = Button(text="Click Me", command=action)
button.pack()

#Entries
entry = Entry(width=30)
#Add some text to begin with
entry.insert(END, string="Some text to begin with.")
#Gets text in entry
print(entry.get())
entry.pack()

#Text
text = Text(height=5, width=30)
#Puts cursor in textbox.
text.focus()
#Adds some text to begin with.
text.insert(END, "Example of multi-line text entry.")
#Get's current value in textbox at line 1, character 0
print(text.get("1.0", END))
text.pack()

#Spinbox
def spinbox_used():
    #gets the current value in spinbox.
    print(spinbox.get())
spinbox = Spinbox(from_=0, to=10, width=5, command=spinbox_used)
spinbox.pack()

#Scale
#Called with current scale value.
def scale_used(value):
    print(value)
scale = Scale(from_=0, to=100, command=scale_used)
scale.pack()

#Checkbutton
def checkbutton_used():
    #Prints 1 if On button checked, otherwise 0.
    print(checked_state.get())
#variable to hold on to checked state, 0 is off, 1 is on.
checked_state = IntVar()
checkbutton = Checkbutton(text="Is On?", variable=checked_state, command=checkbutton_used)
checked_state.get()
checkbutton.pack()

#Radiobutton
def radio_used():
    print(radio_state.get())
#Variable to hold on to which radio button value is checked.
radio_state = IntVar()
radiobutton1 = Radiobutton(text="Option1", value=1, variable=radio_state, command=radio_used)
radiobutton2 = Radiobutton(text="Option2", value=2, variable=radio_state, command=radio_used)
radiobutton1.pack()
radiobutton2.pack()


#Listbox
def listbox_used(event):
    # Gets current selection from listbox
    print(listbox.get(listbox.curselection()))

listbox = Listbox(height=4)
fruits = ["Apple", "Pear", "Orange", "Banana"]
for item in fruits:
    listbox.insert(fruits.index(item), item)
listbox.bind("<<ListboxSelect>>", listbox_used)
listbox.pack()
window.mainloop()



TKinter Layout Managers

  • tkinter는 다양한 레이아웃 관리자를 가지고 있어서 GUI프로그램에 있는 위젯의 배치하는 방법을 정의함

Pack

  • 디폴트로 항상 위에서부터 배치

  • side 매개변수를 사용해서 변경 가능

Place

  • x와 y값을 제공할 수 있음

Grid

  • 열과 행을 나눌 수 있음

  • Grid와 Pack은 같이 쓸 수 없음

9


padding을 추가하는 방법

10


  • 특정 컴포넌트만 여백을 주고 싶을 때도 똑같이 해당 컴포넌트에서 설정해주면 됨
ex)
my_label.config(padx=20, pady=20)



마일을 킬로미터로 바꾸기 프로젝트

11