📜  使用Python的 Kivy 时钟应用程序

📅  最后修改于: 2022-05-13 01:54:30.759000             🧑  作者: Mango

使用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()

输出: