반응형
거창하게 gui 쓰는 방법 말고 간단하게 메시지박스만 띄우고 싶었는데 검색해보니 죄다 Tkinter나 PyQt같은 라이브러리를 사용하는 방법 뿐이었다. 그러다가 윈도우api를 호출해서 메시지박스를 띄우는 방법을 찾았는데 이건 파이썬 2.7 용 코드라 그런지 한글이 깨지는 참사가...
그래서 좀 더 찾아보니까 아까 그 윈도우api를 호출해서 메시지박스를 띄우는 코드가 파이썬 2.7이 ansi를 사용해서 파이썬 3에서 깨지던 거더라... 호출함수를 유니코드용으로 바꿨더니 문제해결!
import ctypes
msg = ctypes.windll.user32.MessageBoxW(None, "내용", "제목", 0)
if msg == 1:
print("OK")
ctypes를 임포드하고 위 코드처럼 사용하면된다.
아래와 같은 함수를 만들어두면 요긴.
def messageBox(title, text, style):
return ctypes.windll.user32.MessageBoxW(None, text, title, style)
마지막 style 인자에서 메시지박스의 생김새를 지정할 수 있다.
0: 확인(1)
1: 확인(1), 취소(2)
2: 중단(3), 다시시도(4), 무시(5)
3: 예(6), 아니오(7), 취소(2)
4: 예(6), 아니오(7)
5: 다시시도(4), 취소(2)
6: 취소(2), 다시시도(10), 계속(11)
아 그리고 위에서 괄호 안에 있는 숫자는 반환값입니다. 이 반환값으로 어느 버튼을 눌렀는지 알 수 있습니다.
이거 외에도 아이콘을 표시한다던지 기본 버튼을 지정한다던지 더 다양한 스타일이 있는데 그건 아래 링크를 참고.
https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms645505.aspx
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[자작] DJ DJ pump this party (0) | 2023.03.04 |
---|---|
Node.js의 crypto.createCipher로 암호화된 값을 Python으로 복호화하기 (0) | 2023.02.19 |
파이썬 타입 체크 (2) | 2021.02.13 |
파이썬 코딩 컨벤션 정리 (0) | 2020.08.08 |
pyc & pyo 디컴파일러, Easy Python Decompiler (3) | 2020.03.21 |
[자작] SteamGifts 알리미 (0) | 2019.06.21 |
중복 실행 방지 (0) | 2016.08.14 |