Maxima's Lab

[Python, Tkinter] Graphic User Interface (GUI) - Entry 생성 본문

Python/GUI (Graphic User Interface)

[Python, Tkinter] Graphic User Interface (GUI) - Entry 생성

Minima 2022. 7. 26. 23:54
728x90
SMALL

안녕하세요, 오늘은 Tkinter 모듈을 사용하여, GUI 중 Entry를 생성하는 방법에 대해서 알아보겠습니다.

 

Entry를 생성 및 활용하기 위해 다음 사항들에 대해 구현해보겠습니다.

 

  • ID / PW와 관련된 Entry
  • Delete / Login에 대한 Button
  • ID와 PW에 대한 정확한 정보 기입 시 "Login Succeed", 그렇지 않을 경우 "Login Failed" 메세지

 

다음은, 전체 코드를 실행 시의 초기 화면입니다.

 

초기 화면

 

위의 이미지를 구현하기 위한 전체 코드는 다음과 같습니다.

 

import tkinter as tk
from tkinter import messagebox

def delete_entry():
    global entry_1, entry_2
    
    entry_1.delete(0, "end")
    entry_2.delete(0, "end")
    

def result_entry():
    global entry_1, entry_2
    
    if entry_1.get() == 'answer@xxxxx.com' and entry_2.get() == "12345":
        msg = messagebox.showinfo(message = "Login Succeed")
        msg.pack()
    else:
        msg = messagebox.showwarning(message = "Login Failed")
        delete_entry()
        entry_1.insert(0, "exmaple@xxxxx.com")
        msg.pack()

win = tk.Tk()
win.title("Maxima")
win.geometry("1000x200+300+300")

entry_1 = tk.Entry(win)
entry_1.config(width = 50)
entry_1.insert(0, "exmaple@xxxxx.com")
entry_1.place(x=10, y=10)

entry_2 = tk.Entry(win)
entry_2.config(width = 50, show = "*")
entry_2.place(x=10, y=40)

btn_1 = tk.Button(win, text = 'Delete', command = delete_entry)
btn_1.config(width = 5, height = 3)
btn_1.place(x=500, y=10)

btn_2 = tk.Button(win, text = 'Login', command = result_entry)
btn_2.config(width = 5, height = 3)
btn_2.place(x=600, y=10)


win.mainloop()

 

위의 전체 코드에 대해 세부적으로 살펴보도록 하겠습니다.

 

def delete_entry():
    global entry_1, entry_2
    
    entry_1.delete(0, "end")
    entry_2.delete(0, "end")
    

def result_entry():
    global entry_1, entry_2
    
    if entry_1.get() == 'answer@xxxxx.com' and entry_2.get() == "12345":
        msg = messagebox.showinfo(message = "Login Succeed")
        msg.pack()
    else:
        msg = messagebox.showwarning(message = "Login Failed")
        delete_entry()
        entry_1.insert(0, "exmaple@xxxxx.com")
        msg.pack()

 

delete_entry() 함수는 entry_1, entry_2에 대해 입력되어 있는 모든 글자들을 제거하는 함수이며, result_entry() 함수는 ID / PW와

각각 "answer@xxxxx.com", "12345"와 모두 동일할 경우 "Login Succeed"의 메세지를 출력하고, 둘 중에 하나라도 다를 시에는 

"Login Failed" 라는 메세지와 함께, delete_entry() 함수 실행 및 초기 화면의 형태로 전환해주는 함수입니다.

 

다음은 로그인 실패 시 출력되는 결과 이미지입니다.

 

로그인 실패 시 출력되는 결과 이미지

 

이어서 로그인 성공 시 출력되는 결과 이미지입니다.

 

로그인 성공 시 출력되는 결과 이미지

 

전체 코드 내 남은 코드에 대해서 이어서 알아보겠습니다.

win = tk.Tk()
win.title("Maxima")
win.geometry("1000x200+300+300")

entry_1 = tk.Entry(win)
entry_1.config(width = 50)
entry_1.insert(0, "exmaple@xxxxx.com")
entry_1.place(x=10, y=10)

entry_2 = tk.Entry(win)
entry_2.config(width = 50, show = "*")
entry_2.place(x=10, y=40)

btn_1 = tk.Button(win, text = 'Delete', command = delete_entry)
btn_1.config(width = 5, height = 3)
btn_1.place(x=500, y=10)

btn_2 = tk.Button(win, text = 'Login', command = result_entry)
btn_2.config(width = 5, height = 3)
btn_2.place(x=600, y=10)

 

Entry에 대해 entry_1, entry_2를 설정하며, entry_1 (ID)는 "example@xxxxx.com"으로 초기값을 설정합니다. 또한, entry_2(PW)는 show = "*" 를 통해 실제 입력하는 문자들을 "*"로 보여줍니다. 그리고, 'Delete', 'Login' 버튼들을 각각 delete_entry() 함수와 result_entry() 함수를 연결시킵니다.

 

지금까지, Tkinter 모듈을 사용하여, Graphic User Interface (GUI)의 Entry를 생성하는 방법에 대해 알아보았습니다.

728x90
LIST
Comments