일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 802.3
- 802.3 이더넷
- Address Resolution Protocol
- adodb 설치
- AES 암호
- Alternatively build in profile or release modes to enable launching from the home screen
- Android Studio 몰입모드
- Android Studio 몰입모드 설정
- Android Studio 상태바 없애기
- Android Studio 자동 정렬
- android studio 자동정렬
- Android Studio 자동정렬 단축키
- Android Studio 코드 자동정렬
- Android Studio 타이틀바 없애기
- Android Studio 하단 바 없애기
- Android Studio 홈버튼 없애기
- Angler EK
- Angler EK 악성코드
- Angler EK이란
- apache2 tomcat9
- apache2 tomcat9 설치
- apache2 tomcat9 연동
- API
- apk 에러
- apk 오류
- ARP
- arp cache poisoning
- ARP Poisoning
- ARP Request
- ARP 구조
- Today
- Total
지나가는 이야기
[Python] 티킨터를 이용한 로그인 성공 화면 만들기 / tkinter를 이용한 로그인 성공 화면 만들기 본문
[Python] 티킨터를 이용한 로그인 성공 화면 만들기 / tkinter를 이용한 로그인 성공 화면 만들기
지나가는 이야기 2021. 9. 14. 12:12
이번에는 사람들이 많이 만들어 달라고 한 tkinter를 이용한 로그인 화면을 만든 후 성공 화면까지 생성하는 프로그램을 만들겠습니다. 아래 글의 2차 버전이라 생각하면 됩니다.
https://passing-story.tistory.com/188#comment17066368
그리고 저의 개발 환경이 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()
위 코드는 전체 코드이다.
'Computer language : 컴퓨터 언어 > Python' 카테고리의 다른 글
[Python] ord(), chr() : 파이썬 아스키 코드 변환 (0) | 2022.11.16 |
---|---|
[Python] 인터넷 속도 테스트 (0) | 2022.01.31 |
[Python] pdf 변환 / 워드파일 pdf 변환 (0) | 2021.03.05 |
[Python] 원형 차트 만들기 / matplotlib 활용 (0) | 2021.02.12 |
[Python] 선택 정렬(Selection Sort) 사용하기 (0) | 2021.01.27 |