python Kivy 기반 그래 픽 데스크 톱 시계 프로그램 작성
그것 은 다음 과 같은 세 가지 특징 이 있다.
크로스 플랫폼
Kivy 가 만 든 프로그램 은 Linux,Windows,OS X,Android,iOS,Raspberry Pi 에서 실 행 됩 니 다.
상업 우호
키 비 는 MIT 라이 선 스 를 기반 으로 개원 해 무료 로 상업 적 으로 이용 할 수 있다.
GPU 가속키 비의 이미지 엔진 은 오픈 ES 2 를 기반 으로 구 축 돼 성능 이 뛰어나다.
그 밖 에 Kivy 도 단점 이 있 습 니 다.예 를 들 어:
이 글 은 키 비 로 데스크 톱 시계 프로그램 을 써 서 키 비의 그래 픽 인터페이스 개발 을 체험 해 보 자.그 최종 효 과 는 다음 그림 과 같다.
본 고 에서 기술 한 프로그램의 코드 구 조 는 다음 과 같다.
그 중:
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 가 데스크 톱 시계 프로그램 을 작성 하 는 데 관 한 자 료 는 다른 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.