介绍编写主程序代码
今天就跟大家聊聊有关怎么在python中利用Kivy编写一个图形桌面时钟程序,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
使用kv构建界面
Kivy提供了一种简单且可扩展的GUI设计语言用来专门设计对Kivy的图形界面进行设计。我们可以在.kv文件中设计好程序的图形界面,然后在。py文件中对图像界面进行交互控制。
在本程序中,我们一共有3个地方使用了Kivy的设计语言,它们分别是:
- <李>
时钟屏幕:clockscreen.kv
李> <李>秒表屏幕:stopwatchscreen.kv
李> <李>主界面:主要。kv
在时钟屏幕中,我们按照如下方式定义构建了一个界面:
在秒表屏幕中,我们按照如下方式定义构建了一个界面:
最后在主界面中,引入这两个屏幕,通过布局管理器,将其放置在了主界面中:
编写主程序代码
在通过Kivy的kv设计语言构建好了程序界面之后,我们来编写主程序的python代码。
首先,引入所需的模块:
得到kivy.app import 应用 得到kivy.uix.screenmanager import 屏幕,SlideTransition 得到kivy.core.text import  LabelBase 得到kivy.uix.button import  ButtonBehavior 得到kivy.uix.image import 形象 得到kivy.clock import 时钟 import 时间
接着,配置一下中文字体。因为Kivy的先天缺陷,其对中文的支持很差劲,默认情况下,中文都会显示成一个个豆腐块,只能通过引入中文字体来解决:
LabelBase.register ( ,name=& # 39; SiyuanHeiti& # 39; fn_regular=& # 39;。/字体/SourceHanSansCN-Normal.ttf& # 39; )
然后,我们创建3个在kv文件中定义的小部件:
#,图像按钮 class ImageButton (ButtonBehavior、图片): ,通过 #,秒表屏幕 class StopwatchScreen(屏幕): ,通过 #,时钟屏幕 class ClockScreen(屏幕): 之前,通过>创建一个名为MainApp()的类,这是程序的主类。我们把各种交互控制的方法写在这里面: class MainApp(应用):=,,sw_started  False #,秒表启动状态 ,sw_seconds =, 0, #,当前秒表秒数 ,def 更新(自我,n): ,#如果秒表已启动,更新当前秒数 ,if self.sw_started: self.sw_seconds 才能+=,n ,#更新当前时间 ,self.root.ids [& # 39; clock_screen& # 39;] .ids[& # 39;时间# 39;].text =, time.strftime (“[b] % H [/b]: % M: % S") ,#更新秒表=,m, s divmod (self.sw_seconds 60), #,返回一个包含商和余数的元组 ,self.root.ids [& # 39; stopwatch_screen& # 39;] .ids[& # 39;秒表# 39;].text =, (“% 2 d: % 2 d。% 2 d [font=40][/大小]“,%,(int (m), int, int (100 * 100%))) ,#重写程序启动的事件 ,def on_start(自我): ,Clock.schedule_interval (self.update, 0) ,#开始/停止 ,def start_stop(自我): ,self.root.ids [& # 39; stopwatch_screen& # 39;] .ids [& # 39; start_stop& # 39;] .text =, & # 39;启动& # 39;,if self.sw_started else & # 39;停止& # 39;=,,self.sw_started  not self.sw_started ,#重置秒表 ,def 重置(自我): ,if self.sw_started: self.root.ids才能[& # 39;stopwatch_screen& # 39;] .ids [& # 39; start_stop& # 39;] .text =, & # 39;启动& # 39; self.sw_started 才能=False self.sw_seconds =, 0 ,def go_forward(自我):=,,screen_manager  self.root.ids [& # 39; screen_manager& # 39;】=,,screen_manager.transition  SlideTransition(方向=皉ight")=,screen_manager.current “stopwatch_screen" ,def go_back(自我):=,,screen_manager  self.root.ids [& # 39; screen_manager& # 39;】=,,screen_manager.transition  SlideTransition(方向=發eft")=,screen_manager.current “clock_screen"这样,这个程序就完成了。我们实例化MainApp()并调用其运行()方法即可运行。
怎么在python中利用Kivy编写一个图形桌面时钟程序