怎么在python中利用Kivy编写一个图形桌面时钟程序

  介绍

今天就跟大家聊聊有关怎么在python中利用Kivy编写一个图形桌面时钟程序,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

使用kv构建界面

Kivy提供了一种简单且可扩展的GUI设计语言用来专门设计对Kivy的图形界面进行设计。我们可以在.kv文件中设计好程序的图形界面,然后在。py文件中对图像界面进行交互控制。

在本程序中,我们一共有3个地方使用了Kivy的设计语言,它们分别是:

<李>

时钟屏幕:clockscreen.kv

<李>

秒表屏幕:stopwatchscreen.kv

<李>

主界面:主要。kv

在时钟屏幕中,我们按照如下方式定义构建了一个界面:

怎么在python中利用Kivy编写一个图形桌面时钟程序

在秒表屏幕中,我们按照如下方式定义构建了一个界面:

怎么在python中利用Kivy编写一个图形桌面时钟程序

最后在主界面中,引入这两个屏幕,通过布局管理器,将其放置在了主界面中:

怎么在python中利用Kivy编写一个图形桌面时钟程序

编写主程序代码

在通过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编写一个图形桌面时钟程序