亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在python中利用Kivy編寫一個圖形桌面時鐘程序

發布時間:2021-01-29 16:04:32 來源:億速云 閱讀:387 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關怎么在python中利用Kivy編寫一個圖形桌面時鐘程序,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

使用 kv 構建界面

Kivy 提供了一種簡單且可擴展的 GUI 設計語言用來專門設計對 Kivy 的圖形界面進行設計。我們可以在.kv文件中設計好程序的圖形界面,然后在.py文件中對圖像界面進行交互控制。

在本程序中,我們一共有 3 個地方使用了 Kivy 的設計語言,它們分別是:

  • 時鐘屏幕:clockscreen.kv

  • 秒表屏幕:stopwatchscreen.kv

  • 主界面:main.kv

在時鐘屏幕中,我們按照如下方式定義構建了一個界面:

怎么在python中利用Kivy編寫一個圖形桌面時鐘程序

在秒表屏幕中,我們按照如下方式定義構建了一個界面:

怎么在python中利用Kivy編寫一個圖形桌面時鐘程序

最后在主界面中,引入這兩個屏幕,通過布局管理器,將其放置在了主界面中:

怎么在python中利用Kivy編寫一個圖形桌面時鐘程序

編寫主程序代碼

在通過 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'
)

然后,我們創建 3 個在kv文件中定義的小部件:

# 圖像按鈕
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()

看完上述內容,你們對怎么在python中利用Kivy編寫一個圖形桌面時鐘程序有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

利津县| 丹江口市| 南陵县| 西乌珠穆沁旗| 玉田县| 克东县| 施秉县| 中宁县| 黑河市| 蓝田县| 筠连县| 秀山| 南阳市| 张家港市| 波密县| 鹤峰县| 蒙阴县| 东阿县| 浏阳市| 马龙县| 丰台区| 邵武市| 洛阳市| 南宁市| 九龙县| 康定县| 天峨县| 桂平市| 肥城市| 北宁市| 民丰县| 江永县| 日照市| 保定市| 曲靖市| 潍坊市| 同心县| 莱州市| 商南县| 莱芜市| 大荔县|