● 코딩방법) 시계프로그램 간단히 Visual Studio Code에디터 에서 python.py 파이션 프로그램 실행 Ctrl + F5
이전
다음
링크
첨부
등록일
2024.11.02 12:37
등록일
2024.11.02 12:37
등록일
2024.11.02 12:37
본문
Loading the player...
● 코딩방법) 시계프로그램 간단히 Visual Studio Code에디터 에서 python.py 파이션 프로그램 실행 Ctrl + F5
[VS Code] Visual Studio Code 설치, .py 파일 실행하는 방법
본 글은 VS Code 설치 후 .py 파일을 실행하는 방법
바로가기 만들어 시작프로그램에 등록 사용하세요
이 프로그램은 디지털 시계, 스탑워치, 알람, 절전 모드를 제공하는 Python GUI 애플리케이션입니다. 프로그램은 tkinter
라이브러리를 사용하여 그래픽 사용자 인터페이스(GUI)를 만들고, pyinstaller
를 통해 .exe
파일로 컴파일할 수 있도록 설계되었습니다. 주요 기능과 코드 구조는 다음과 같습니다.
주요 기능 요약
- 현재 시간과 날짜 표시
- 스탑워치 기능 (시작, 정지, 재개, 초기화)
- 알람 설정 및 알람 소리 재생
- 절전 모드 설정
- IP 주소 및 PC 업타임 표시
- 관리자 권한으로 실행
- 수정 날짜 표시
- PyInstaller와 호환되는 파일 경로 관리
코드 구조 및 설명
1. 관리자 권한으로 실행 (run_as_admin
함수)
- 프로그램이 관리자 권한으로 실행되지 않은 경우, 관리자 권한으로 재실행을 요청합니다. 이를 위해
ctypes
라이브러리의ShellExecuteW
메서드를 사용하여 프로그램을 관리자 권한으로 실행하고, 권한이 없으면 실행을 중단합니다.
2. 현재 시간, 날짜, 요일 표시 (update_clock
함수)
- 현재 시간과 날짜를
strftime
을 사용하여 가져오며, 요일은 영어에서 한글로 변환하여 표시합니다. label_time
과label_date
레이블에 시간과 날짜가 업데이트되며, 매초마다 함수가 재실행되어 실시간으로 갱신됩니다.- 이 함수는 또한 PC의 업타임(컴퓨터가 켜진 이후 경과 시간)을 표시하고, IP 주소를 가져와 화면에 표시합니다.
3. PC 업타임 표시 (update_uptime
함수)
psutil.boot_time()
로 컴퓨터의 부팅 시간을 얻어, 현재 시간과 비교하여 업타임(경과 시간)을 계산합니다.- 업타임이 화면에 실시간으로 표시되며,
uptime_label
에 업데이트됩니다.
4. IP 주소 표시 (get_ip_addresses
함수)
- 외부 IP 주소는
requests.get("https://api.ipify.org").text
로 가져오고, 로컬 IP 주소는socket.gethostbyname(socket.gethostname())
로 가져옵니다. - IP 주소 정보를
ip_label
에 표시하여 사용자가 쉽게 확인할 수 있도록 합니다.
5. 알람 설정 및 알람 소리 재생 (set_alarm
, check_alarm
, play_alarm_sound
함수)
- 알람 시간을 사용자가 설정한 시간(
alarm_entry
텍스트 입력)을 기준으로 설정하며,set_alarm
함수에서 알람 시간을 확인합니다. - 현재 시간보다 알람 시간이 이전인 경우, 알람 시간을 10분 후로 자동 설정하고 "10분 후 알람"이라는 메시지를 표시합니다.
check_alarm
함수는 현재 시간이 알람 시간과 일치하면 알람 소리를play_alarm_sound
함수에서 재생합니다.- 알람 소리 재생 시 스탑워치를 자동으로 초기화하고 다시 시작합니다.
- 절전 모드가 선택된 경우 알람이 울리고 1분 후 절전 모드로 진입합니다.
6. 절전 모드 설정 (activate_sleep_mode
함수)
- 사용자가 절전 모드를 선택한 경우, 알람이 울린 후 1분 후에 컴퓨터를 절전 모드로 전환합니다.
ctypes.windll.powrprof.SetSuspendState(0, 1, 0)
명령을 통해 시스템을 절전 모드로 진입시키며, 이를 통해 에너지를 절약할 수 있습니다.
7. 스탑워치 기능
- 시작, 정지, 재개, 초기화가 가능한 스탑워치를 제공합니다.
start_or_toggle_stopwatch
함수에서 스탑워치를 시작하거나 정지/재개할 수 있으며,stop_stopwatch
함수에서 스탑워치를 초기화할 수 있습니다.- 스탑워치는 알람 소리가 재생될 때마다 자동으로 초기화되어 00:00.00부터 다시 시작합니다.
- 스탑워치는 현재 경과 시간을
stopwatch_label
에 표시하며, 실시간으로 업데이트됩니다.
8. 파일 수정 날짜 표시
- 프로그램이 시작될 때 파일의 마지막 수정 시간을 가져와 하단에 표시합니다.
pyinstaller
로 컴파일된.exe
파일에서도 오류가 발생하지 않도록try-except
예외 처리를 통해 마지막 수정 시간을 가져옵니다.__file__
대신sys.executable
을 사용하여.exe
파일에서도 경로를 찾을 수 있도록 했습니다.
9. 투명도 및 최상위 설정 (adjust_transparency
, set_topmost
함수)
- 투명도 조절 슬라이더를 통해 창의 투명도를 설정할 수 있습니다.
- 최상위 설정 체크박스를 통해 창을 화면의 최상위에 고정하거나 해제할 수 있습니다.
10. PyInstaller 호환성 및 실행 파일 생성
save_path
와di_donig.MP3
파일 경로를sys.executable
을 기반으로 설정하여,.exe
파일과 같은 폴더에stopwatch_time.txt
와di_donig.MP3
파일이 있을 때 올바르게 파일을 찾을 수 있도록 구성했습니다.- 마지막에
pyinstaller --onefile time_stopwatch.py
명령어와 관련 URL을 주석으로 추가하여,.exe
파일 생성과 정보 등록을 안내하고 있습니다.
GUI 구성 요소
- 현재 시간 및 날짜 레이블:
label_time
,label_date
는 현재 시간과 날짜, 요일을 표시. - PC 업타임 및 IP 주소 레이블:
uptime_label
,ip_label
은 컴퓨터의 업타임과 외부/로컬 IP 주소를 표시. - 알람 설정 프레임:
alarm_frame
에는 알람 시간 입력, 알람 및 절전 모드 체크박스, 설정 버튼이 포함. - 스탑워치 레이블 및 버튼:
stopwatch_label
은 스탑워치 시간을 표시하고,toggle_button
과restart_button
을 통해 시작, 정지, 초기화 가능. - 수정 날짜 레이블:
modification_label
은 프로그램의 마지막 수정 날짜를 표시.
이 프로그램은 시계, 스탑워치, 알람, 절전 모드 기능을 하나의 GUI로 통합하여 사용자가 알람과 스탑워치를 설정하고, 절전 모드를 활용해 전원 관리를 할 수 있도록 설계되었습니다.
☞ https://11q.kr 에 등록된 자료 입니다. ♠ 정보찾아 공유 드리며 출처는 링크 참조 바랍니다♠
관련자료
-
링크
-
첨부등록일 2024.11.02 12:37등록일 2024.11.02 12:37등록일 2024.11.02 12:37
-
이전
-
다음
댓글 0
등록된 댓글이 없습니다.