python Kivy 기반 그래 픽 데스크 톱 시계 프로그램 작성

키 비 는 애플 리 케 이 션 을 빠르게 개발 할 수 있 는 파 이 썬 제3자 라 이브 러 리 를 오픈 한 것 이다.
그것 은 다음 과 같은 세 가지 특징 이 있다.
크로스 플랫폼
Kivy 가 만 든 프로그램 은 Linux,Windows,OS X,Android,iOS,Raspberry Pi 에서 실 행 됩 니 다.
상업 우호
키 비 는 MIT 라이 선 스 를 기반 으로 개원 해 무료 로 상업 적 으로 이용 할 수 있다.
GPU 가속키 비의 이미지 엔진 은 오픈 ES 2 를 기반 으로 구 축 돼 성능 이 뛰어나다.
그 밖 에 Kivy 도 단점 이 있 습 니 다.예 를 들 어:
  • 비 원생 의 도형 인터페이스;
  • 포장 후의 부피 가 매우 크다
  • 4.567917.지역사회 의 지원 이 부족 하 다
  • 충분 한 예제 문서 가 부족 합 니 다
  • 중국어 에 대한 지지 가 매우 나쁘다키 비 는 이런 단점 에 도 불구 하고 우수한 파 이 썬 그래 픽 인터페이스 개발 창고 라 고 할 수 있다.특히 애플 리 케 이 션 을 모 바 일 기기(IOS·안 드 로 이 드)에서 사용 할 수 있 는 앱 으로 포장 할 수 있어 파 이 썬 개발 의 경 계 를 크게 확장 했다 고 할 수 있다.
    이 글 은 키 비 로 데스크 톱 시계 프로그램 을 써 서 키 비의 그래 픽 인터페이스 개발 을 체험 해 보 자.그 최종 효 과 는 다음 그림 과 같다.

    본 고 에서 기술 한 프로그램의 코드 구 조 는 다음 과 같다.

    그 중:
  • /font 폴 더 는 중국어 글꼴 파일 을 설치 하 는 데 사 용 됩 니 다.그 중에서 우 리 는 사원 흑 체 를 도형 으로 하 는 중국어 디 스 플레이 글꼴 을 놓 았 다
  • /imgs 폴 더 는 정적 이미지 파일 을 설치 하 는 데 사 용 됩 니 다.그 중에서 우 리 는 두 방향 으로 그림 을 표시 합 니 다
  • /kv 폴 더 는 Kivy 인터페이스의 디자인 템 플 릿 을 저장 하 는 데 사 용 됩 니 다
  • 4.567917.main.kv 는 메 인 프로그램의 인터페이스 디자인 템 플 릿 입 니 다
  • main.py 는 메 인 프로그램의 Python 코드 입 니 다
  • kv 로 인터페이스 구축
    Kivy 는 Kivy 의 그래 픽 인터페이스 를 디자인 하기 위해 간단 하고 확장 가능 한 GUI 디자인 언어 를 제공 합 니 다.우 리 는.kv 파일 에서 프로그램의 그래 픽 인 터 페 이 스 를 설계 한 다음 에.py 파일 에서 이미지 인 터 페 이 스 를 상호작용 제어 할 수 있다.
    이 프로그램 에서 우 리 는 모두 3 곳 에서 Kivy 의 디자인 언어 를 사 용 했 는데 각각 다음 과 같다.
    시계 화면:clockscreen.kv스톱워치 화면:stopwatchscreen.kv메 인 화면:main.kv
    시계 화면 에서 우 리 는 다음 과 같은 방식 으로 인 터 페 이 스 를 구축 했다.

    스톱워치 화면 에서 우 리 는 다음 과 같은 방식 으로 인 터 페 이 스 를 구축 했다.

    마지막 으로 메 인 인터페이스 에서 이 두 화면 을 도입 하여 레이아웃 관리 자 를 통 해 메 인 인터페이스 에 배치 합 니 다.

    주 프로그램 코드 작성
    Kivy 의 kv 디자인 언어 를 통 해 프로그램 인터페이스 를 구축 한 후에 우 리 는 메 인 프로그램의 Python 코드 를 작성 합 니 다.
    우선,필요 한 모듈 도입:
    
    from kivy.app import App
    from kivy.uix.screenmanager import Screen,SlideTransition
    from kivy.core.text import LabelBase
    from kivy.uix.button import ButtonBehavior
    from kivy.uix.image import Image
    from kivy.clock import Clock
    import time
    이어서 중국어 글꼴 을 설정 합 니 다.Kivy 의 선천적 인 결함 으로 인해 중국어 에 대한 지원 이 좋 지 않 습 니 다.기본 적 인 상황 에서 중국 어 는 모두 두부 덩어리 로 표시 되 고 중국어 글꼴 을 도입 해서 만 해결 할 수 있 습 니 다.
    
    LabelBase.register(
     name='SiyuanHeiti',
     fn_regular='./font/SourceHanSansCN-Normal.ttf'
    )
    그리고 kv 파일 에 정 의 된 작은 위 젯 3 개 를 만 듭 니 다.
    
    #     
    class ImageButton(ButtonBehavior,Image):
     pass
    
    #     
    class StopwatchScreen(Screen):
     pass
    
    #     
    class ClockScreen(Screen):
     pass
    
          MainApp()  ,       。                 :
    
    class MainApp(App):
     sw_started = False #       
     sw_seconds = 0 #       
    
     def update(self,n):
     #        ,      
     if self.sw_started:
      self.sw_seconds += n
    
     #       
     self.root.ids['clock_screen'].ids['time'].text = time.strftime("[b]%H[/b]:%M:%S")
     #     
     m,s = divmod(self.sw_seconds,60) #              
     self.root.ids['stopwatch_screen'].ids['stopwatch'].text = ("%02d: %02d.[size=40]%02d[/size]" % (int(m),int(s),int(s*100%100)))
    
     #          
     def on_start(self):
     Clock.schedule_interval(self.update,0)
    
     #   /  
     def start_stop(self):
     self.root.ids['stopwatch_screen'].ids['start_stop'].text = '  ' if self.sw_started else '  '
     self.sw_started = not self.sw_started
    
     #     
     def reset(self):
     if self.sw_started:
      self.root.ids['stopwatch_screen'].ids['start_stop'].text = '  '
      self.sw_started = False
     self.sw_seconds = 0
    
     def go_forward(self):
     screen_manager = self.root.ids['screen_manager']
     screen_manager.transition = SlideTransition(direction="right")
     screen_manager.current = "stopwatch_screen"
    
     def go_back(self):
     screen_manager = self.root.ids['screen_manager']
     screen_manager.transition = SlideTransition(direction="left")
     screen_manager.current = "clock_screen"
    이렇게 하면 이 절 차 는 완성 된다.우 리 는 MainApp()을 실례 화하 고 run()방법 을 호출 하면 실행 할 수 있 습 니 다.
    
    if __name__ == '__main__':
     app = MainApp()
     app.run()
    작은 매듭
    전체적으로 Kivy 를 사용 하여 그래 픽 인터페이스 프로그램 을 만 드 는 것 은 다른 Python 이미지 인터페이스 라 이브 러 리 를 사용 하 는 것 과 크게 다 르 지 않 습 니 다.이 는 kv 디자인 언어 를 통 해 큰 프로그램 에서 도형 프로그램의 인터페이스 와 상호작용 을 분리 시 켜 프로그램의 개발 을 비교적 뚜렷하게 한다.
    Kivy 를 사용 하여 정교 하고 기능 이 강 한 그래 픽 인터페이스 를 개발 하려 면 Kivy 의 각종 구성 요 소 를 깊이 숙지 하고 이해 해 야 합 니 다.
    이상 은 python 이 Kivy 를 기반 으로 그래 픽 데스크 톱 시계 프로그램 을 작성 하 는 상세 한 내용 입 니 다.python Kivy 가 데스크 톱 시계 프로그램 을 작성 하 는 데 관 한 자 료 는 다른 글 을 주목 하 십시오!

    좋은 웹페이지 즐겨찾기