관리 메뉴

지나가는 이야기

[Python] 티킨터를 이용한 로그인 성공 화면 만들기 / tkinter를 이용한 로그인 성공 화면 만들기 본문

Computer language : 컴퓨터 언어/Python

[Python] 티킨터를 이용한 로그인 성공 화면 만들기 / tkinter를 이용한 로그인 성공 화면 만들기

지나가는 이야기 2021. 9. 14. 12:12
728x90
반응형

 

이번에는 사람들이 많이 만들어 달라고 한 tkinter를 이용한 로그인 화면을 만든 후 성공 화면까지 생성하는 프로그램을 만들겠습니다. 아래 글의 2차 버전이라 생각하면 됩니다.

https://passing-story.tistory.com/188#comment17066368

 

[Python] 티킨터를 이용한 로그인 화면 만들기 / tkinter를 이용한 로그인 화면 만들기

Python에서 GUI를 사용하기 위한 가장 기초적인 방법은 바로 tkinter를 사용하는 것이다. 오늘은 tkinter를 사용하여 간단한 로그인 화면을 프로그래밍해보겠습니다. ( 본문 하단에 전체 코드가 있으니

passing-story.tistory.com

 

그리고 저의 개발 환경이 WIndows에서 MAC으로 바뀌어서 기존의 코드 수정이 있었고, 제 코드는 실제 개발에 사용하지는 않고 정말 간단히 기능만 테스트 하는 코드라 참고만 하면 됩니다!!

 

# tkinter를 사용하기 위한 import
from tkinter import *
import tkinter as tk

# tkinter 객체 생성
window = Tk()

먼저 위 코드를 보면 tkinter를 사용하기 위해 import를 해주었다. 그리고 as 키워드를 사용해 tk로 지정 했습니다. 이 부분에서 이전 글과 차이점을 볼 수 있습니다.

 

# 사용자 id와 password를 저장하는 변수 생성
user_id, password = StringVar(), StringVar()

그리고 위에서 보이는 것과 같이 변수를 생성을 해줍니다.

 

# id와 password, 그리고 확인 버튼의 UI를 만드는 부분
tk.Label(window, text = "Username : ").grid(row = 0, column = 0, padx = 10, pady = 10)
tk.Label(window, text = "Password : ").grid(row = 1, column = 0, padx = 10, pady = 10)
tk.Entry(window, textvariable = user_id).grid(row = 0, column = 1, padx = 10, pady = 10)
tk.Entry(window, textvariable = password, show='*').grid(row = 1, column = 1, padx = 10, pady = 10)
tk.Button(window, text = "Login", command = check_data).grid(row = 2, column = 1, padx = 10, pady = 10)

위 코드는 UI를 담당하는 부분으로 User와 Password를 Entry를 이용하여 입력을 받는 것을 확인할 수 있다. 여기서 잘보면 password 부분에서 show='*' 구문을 볼 수 있다. 기존에 Windows 환경에서 프로그램을 만들었을 땐 자동적으로 비밀번호 부분에 *로 숨김 처리가 되었지만 MAC 환경에서는 자동으로 잡아주지 않아 직접 구문을 넣어서 익명 처리를 해주었다.

 

위 사진은 초기의 로그인 화면 UI이다.

 

# 사용자 id와 password를 비교하는 함수
def check_data():
    if user_id.get() == "Passing" and password.get() == "Story":
        # 새로운 화면 생성
        newwin = Tk()
        tk.Label(newwin, text="Welcome to " + user_id.get()).grid(row = 0, column = 0, padx = 10, pady = 10)
        newwin.mainloop()
        print("Logged IN Successfully")
    else:
        print("Check your Username/Password")

위 코드는 가장 중요한 부분으로 지정된 아이디와 패스워드에 맞게 입력을 했을 시 로그인이 성공 되었다는 창이 나오게 하는 부분이다. if문을 이용해 쉽게 구현을 했다.

 

위 사진은 성공적으로 로그인이 되고, 정상적으로 작동되는 것을 확인할 수 있다.

 

 


 

# tkinter를 사용하기 위한 import
from tkinter import *
import tkinter as tk

# tkinter 객체 생성
window = Tk()

# 사용자 id와 password를 저장하는 변수 생성
user_id, password = StringVar(), StringVar()

# 사용자 id와 password를 비교하는 함수
def check_data():
    if user_id.get() == "Passing" and password.get() == "Story":
        # 새로운 화면 생성
        newwin = Tk()
        tk.Label(newwin, text="Welcome to " + user_id.get()).grid(row = 0, column = 0, padx = 10, pady = 10)
        newwin.mainloop()
        print("Logged IN Successfully")
    else:
        print("Check your Username/Password")

# id와 password, 그리고 확인 버튼의 UI를 만드는 부분
tk.Label(window, text = "Username : ").grid(row = 0, column = 0, padx = 10, pady = 10)
tk.Label(window, text = "Password : ").grid(row = 1, column = 0, padx = 10, pady = 10)
tk.Entry(window, textvariable = user_id).grid(row = 0, column = 1, padx = 10, pady = 10)
tk.Entry(window, textvariable = password, show='*').grid(row = 1, column = 1, padx = 10, pady = 10)
tk.Button(window, text = "Login", command = check_data).grid(row = 2, column = 1, padx = 10, pady = 10)

window.mainloop()

위 코드는 전체 코드이다.

 

728x90
반응형
Comments