이번에는 문자열을 입력받을 수 있는 위젯을 만드는 방법을 알아보겠습니다.
요번까지 Label, Button, Entry까지 하고 나면 기본적인 GUI를 만들 수 있습니다. 이를 이용하는 간단한 응용 방법에 대해서도 알아보도록 하겠습니다.
어떤 값을 입력받으려면 Entry 위젯을 사용해야 합니다.
Entry에 대해서 다음 순으로 알아보도록 하겠습니다.
1. 기본 사용 방법
2. Entry 옵션
3. 버튼을 이용한 응용 방법
1. 기본 사용 방법
기본 사용방법은 우선 나타나게 하는 방법입니다. 지금까지 해왔던 Label, Button과 비슷한 구조입니다.
from tkinter import *
gui = Tk()
gui.title("입력을 받아보자!")
gui.geometry("400x300+300+300")
# 그냥 위젯 설명용
Label(gui, text="입력1 :").grid(row=0, column=0, padx=5, pady=5)
# Entry 기본 사용법
Entry(gui).grid(row=0, column=1, padx=5, pady=5)
gui.mainloop()
코드 실행 결과
Entry(gui).grid(row=0, column=1, padx=5, pady=5)
-> 단순하게 어디 프레임에 위치할 것인지만 정하면 간단하게 사용이 가능합니다.
-> 단, 입력한 값을 가지고 오고 싶다면 위젯을 변수에 넣어야 합니다.
2. Entry 옵션
Entry 위젯의 옵션으로는 음영으로 입력을 유도한다거나, 입력받지 못하게 막아놓거나, 폰트를 변경하거나 크기를 조절하는 등의 옵션들이 있습니다.
하나 씩 알아보도록 하겠습니다.
from tkinter import *
gray = "#c8c8c8"
gui = Tk()
gui.title("입력을 받아보자!!")
gui.geometry("400x300+300+300")
input1 = Entry(gui, width=15)
input1.pack(pady=5)
input2 = Entry(gui, font=("consolas", 15), fg=gray)
input2.pack(pady=5)
input2.insert(0, "id")
input3 = Entry(gui, state="disable")
input3.pack(pady=5)
gui.mainloop()
이 코드의 실행 결과입니다.
-> 높이는 알아서 설정이 됩니다.
-> 폰트가 커지면 알아서 늘어납니다.
-> bind 함수와 같이 사용하면 진짜 입력을 유도 할 수 있게 끔 만들 수 있습니다.
fg=gray
-> css 색상 코드를 문자열로 전달하면 그 색을 타나낼 수 있습니다.
-> fg가 있으면 bg도 있습니다.
input1.insert(0, "id")
-> insert 함수로 entry에 문자를 넣을 수 있습니다.
-> 넣었으면 지우는 것도 있습니다. delete 함수를 사용하면 됩니다.
state="disable"
-> 입력을 막아버립니다.
-> disable말고도 readonly 속성과 normal 속성이 있습니다.
3. 버튼을 이용한 응용 방법
입력 받은 값을 버튼을 이용하여 처리하는 방법에 대해서 알아보겠습니다.
from tkinter import *
def push():
value = input1.get()
text['text'] = eval(value)
gui = Tk()
gui.title("입력을 받아보자!!")
gui.geometry("400x300+300+300")
input1 = Entry(gui, font=("consolas", 15))
input1.pack(pady=5)
text = Label(gui, text="", font=("consolas", 13))
text.pack(pady=5)
Button(gui, text="push", command=push).pack(pady=5)
gui.mainloop()
실행 결과입니다.
value = input1.get()
-> input1의 위젯에 있는 문자를 가져옵니다.
text['text'] = eval(value)
-> text위젯에 text를 eval(value)의 결과를 집어 넣습니다.
-> eval 함수는 문자로 된 것을 코드로 인식을 합니다.
'프로그래밍 > 파이썬' 카테고리의 다른 글
[파이썬 GUI] tkinter 7 화면 전환~~ (Frame을 이용한 화면 전환) (0) | 2022.11.24 |
---|---|
[파이썬 GUI] tkinter 6(특정 키를 누를 때 동작하는 bind함수/로그인 창 음영 넣는 법) (0) | 2022.10.28 |
[파이썬 GUI] tkinter 4(버튼 사용하기/버튼의 기능 만들기) (3) | 2022.10.21 |
[파이썬 GUI] tkinter 3(위젯을 화면에 배치하는 방법, pack, grid, place) (0) | 2022.10.14 |
[파이썬 GUI] tkinter 2(Label을 이용하여 글자, 이미지 표현하기) (0) | 2022.10.14 |
댓글