使用Python的 Kivy 时钟应用程序
在本文中,我们将了解如何使用Python使用 Kivy 开发时钟应用程序。
Kivy 是一个图形用户界面开源Python库,允许您在 Windows、macOS、Android、iOS、Linux 和 Raspberry-Pi 上开发多平台应用程序。除了常规的鼠标和键盘输入外,它还支持多点触控事件。
我们将使用时间模块来获取当前时间并每秒更新一次。此外,我们还将显示不同时区的两次。
使用的功能
- asctime():默认获取本地时间。您还可以在其中传递时区以获取另一个时区的时间,如示例 2 中所做的那样。
- BoxLayout():用于在垂直或水平框中排列布局。
- schedule_interval():用于创建时间间隔并调用函数/event。
- add_widget():将小部件添加到屏幕。
示例 1:使用 kivy 的本地时间应用程序
Python3
# importing modules
# it will allow us to get time
import time
# The App class is the base for
# creating Kivy applications
from kivy.app import App
# it will allow us to make interval calls
from kivy.clock import Clock
# Label widget will be used to render text
from kivymd.uix.label import Label
# we will be using this to resize app window
from kivy.core.window import Window
# it will allow us to create layouts
from kivy.uix.boxlayout import BoxLayout
# declaring window size
Window.size = (400, 700)
# clock class
class myclock(Label):
def update(self, *args):
# get the current local time
self.text = time.asctime()
# App class
class TimeApp(App):
def build(self):
layout = BoxLayout(orientation='vertical')
# it will create vertical layouts in app
# calling clock class for time
clock1 = myclock()
# updates time with the interval of 1 sec
Clock.schedule_interval(clock1.update, 1)
# adding layout to the screen
layout.add_widget(clock1)
# adding text to screen
layout.add_widget(Label(text='INDIA'))
return layout
root = TimeApp()
root.run() # running the app
Python3
import time
from kivy.app import App
from kivy.clock import Clock
from kivymd.uix.label import Label
from kivy.core.window import Window
from kivy.uix.boxlayout import BoxLayout
Window.size = (400, 700)
class myclock(Label):
def update(self, *args):
self.text = time.asctime()
class myclock2(Label):
def update(self, *args):
t = time.gmtime()
self.text = time.asctime(t)
class TimeApp(App):
def build(self):
layout = BoxLayout(orientation='vertical')
clock1 = myclock()
Clock.schedule_interval(clock1.update, 1)
layout.add_widget(clock1)
layout.add_widget(Label(text='INDIA'))
clock2 = myclock2()
Clock.schedule_interval(clock2.update, 1)
layout.add_widget(clock2)
layout.add_widget(Label(text='LONDON'))
return layout
root = TimeApp()
root.run()
输出:
示例 2:在时间应用程序中添加另一个时区
创建另一个时钟类并为时钟 2 应用内类添加额外的布局。
Python3
import time
from kivy.app import App
from kivy.clock import Clock
from kivymd.uix.label import Label
from kivy.core.window import Window
from kivy.uix.boxlayout import BoxLayout
Window.size = (400, 700)
class myclock(Label):
def update(self, *args):
self.text = time.asctime()
class myclock2(Label):
def update(self, *args):
t = time.gmtime()
self.text = time.asctime(t)
class TimeApp(App):
def build(self):
layout = BoxLayout(orientation='vertical')
clock1 = myclock()
Clock.schedule_interval(clock1.update, 1)
layout.add_widget(clock1)
layout.add_widget(Label(text='INDIA'))
clock2 = myclock2()
Clock.schedule_interval(clock2.update, 1)
layout.add_widget(clock2)
layout.add_widget(Label(text='LONDON'))
return layout
root = TimeApp()
root.run()
输出: