새창 작성 수정 목록 링크 Edit G카랜다 HDD HDD HDD 게시물 주소 복사


● 코딩방법) 시계프로그램 간단히 Visual Studio Code에디터 에서 python.py 파이션 프로그램 실행 Ctrl + F5

♨ 카랜더 일정 : 2024년11월01일
  • 링크

  • 첨부
    등록일 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 파일을 실행하는 방법


    3232235521_1730466909.6255.png

     

    3232235521_1730518546.9742.png


    바로가기 만들어 시작프로그램에 등록  사용하세요

    3232235521_1730518581.4051.png


    이 프로그램은 디지털 시계, 스탑워치, 알람, 절전 모드를 제공하는 Python GUI 애플리케이션입니다. 프로그램은 tkinter 라이브러리를 사용하여 그래픽 사용자 인터페이스(GUI)를 만들고, pyinstaller를 통해 .exe 파일로 컴파일할 수 있도록 설계되었습니다. 주요 기능과 코드 구조는 다음과 같습니다.

    주요 기능 요약

    1. 현재 시간과 날짜 표시
    2. 스탑워치 기능 (시작, 정지, 재개, 초기화)
    3. 알람 설정 및 알람 소리 재생
    4. 절전 모드 설정
    5. IP 주소 및 PC 업타임 표시
    6. 관리자 권한으로 실행
    7. 수정 날짜 표시
    8. PyInstaller와 호환되는 파일 경로 관리

    코드 구조 및 설명


    1. 관리자 권한으로 실행 (run_as_admin 함수)

    • 프로그램이 관리자 권한으로 실행되지 않은 경우, 관리자 권한으로 재실행을 요청합니다. 이를 위해 ctypes 라이브러리의 ShellExecuteW 메서드를 사용하여 프로그램을 관리자 권한으로 실행하고, 권한이 없으면 실행을 중단합니다.

    2. 현재 시간, 날짜, 요일 표시 (update_clock 함수)

    • 현재 시간과 날짜를 strftime을 사용하여 가져오며, 요일은 영어에서 한글로 변환하여 표시합니다.
    • label_timelabel_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_pathdi_donig.MP3 파일 경로를 sys.executable을 기반으로 설정하여, .exe 파일과 같은 폴더에 stopwatch_time.txtdi_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_buttonrestart_button을 통해 시작, 정지, 초기화 가능.
    • 수정 날짜 레이블: modification_label은 프로그램의 마지막 수정 날짜를 표시.

    이 프로그램은 시계, 스탑워치, 알람, 절전 모드 기능을 하나의 GUI로 통합하여 사용자가 알람과 스탑워치를 설정하고, 절전 모드를 활용해 전원 관리를 할 수 있도록 설계되었습니다.


    ☞ https://11q.kr 에 등록된 자료 입니다. ♠ 정보찾아 공유 드리며 출처는 링크 참조 바랍니다♠1.png

    [ 추가 정보 ... 더보기) ]
    뷰PDF 1,2



    office view

    관련자료

    댓글목록

    등록된 댓글이 없습니다.


    새창 작성 수정 목록 링크 Edit G카랜다 HDD HDD HDD 게시물 주소 복사


    ♥간단_메모글♥


    최근글


    새댓글



    PHP 안에 HTML ☞ 홈페이지 화면갱신 시간은 ♨
    ▶ 2024-11-15 11:23:30

    오늘의 홈 현황


    • 현재 접속자♨ 232 명
    • 오늘 가입자※ 0 명
    • 어제 가입자※ 7 명
    • 주간 가입자※ 16 명
    • 오늘 방문자 1,410 명
    • 어제 방문자 1,855 명
    • 최대 방문자 13,042 명
    • 전체 방문자 4,779,636 명
    • 전체 게시물※ 8,846 개
    • 전체 댓글수※ 25,206 개
    • 전체 회원수 11,315 명

    QR코드


    ☞ QR코드 스캔은 kakao앱 자체 QR코드

    알림 0








    최신글↑