成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

python基于Kivy寫一個圖形桌面時鐘程序

瀏覽:9日期:2022-06-28 18:52:07

Kivy 是一個開源的 Python 第三方庫,可以用來快速開發應用程序。

它有如下三個特點:

跨平臺

Kivy 編寫的程序可在 Linux,Windows,OS X,Android,iOS 和 Raspberry Pi 上運行。

商業友好

Kivy 基于 MIT 許可證進行開源,可以進行免費的商業使用。

GPU 加速

Kivy 的圖像引擎基于 Open ES 2 構建,性能出眾。

除此之外 Kivy 也存在一些缺點,比如:

非原生的圖形界面; 打包后的體積很大; 缺乏社區支持; 缺乏足夠的示例文檔; 對中文的支持很差;

盡管 Kivy 有這樣的缺點,但也不失為一個優秀的 Python 圖形界面開發庫。尤其是其能夠將應用程序打包為移動設備(IOS 和安卓)可用的 APP,可以說極大地擴展了 Python 開發的邊界。

本篇文章,我們用 Kivy 寫一個桌面時鐘程序,來體驗一下 Kivy 的圖形界面開發。其最終效果如下圖所示:

python基于Kivy寫一個圖形桌面時鐘程序

本文所述程序的代碼結構如下圖所示:

python基于Kivy寫一個圖形桌面時鐘程序

其中:

/font文件夾用于放置中文字體文件。在其中,我們放置了思源黑體作為圖形的中文顯示字體。 /imgs文件夾用于放置靜態圖片文件,在其中,我們放置了兩個方向指示圖片。 /kv文件夾用于存放 Kivy 界面的設計模板。 main.kv是主程序的界面設計模板。 main.py是主程序的 Python 代碼。使用 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 Appfrom kivy.uix.screenmanager import Screen,SlideTransitionfrom kivy.core.text import LabelBasefrom kivy.uix.button import ButtonBehaviorfrom kivy.uix.image import Imagefrom kivy.clock import Clockimport 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()小結

總體而言,使用 Kivy 編寫圖形界面程序和使用其他 Python 圖像界面庫相比,沒有多大的區別。其通過kv設計語言,很大程序上把圖形程序的界面和交互分離開來,使得程序的開發比較清晰。

如果需要使用 Kivy 開發出精美且功能強大的圖形界面,還是得深入熟悉和了解 Kivy 的各類組件。

以上就是python基于Kivy 寫一個圖形桌面時鐘程序的詳細內容,更多關于python Kivy 寫一個桌面時鐘程序的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产麻豆成人精品| 欧美在线播放高清精品| 蜜桃久久精品乱码一区二区| 久久精品亚洲精品国产欧美kt∨| 欧美一区二区三区视频在线观看 | 97精品国产露脸对白| 3d成人动漫网站| 国产精品自产自拍| 日韩一区二区三区观看| 国产成人av电影在线| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲精品社区| 国产精品三级电影| 91丨九色丨蝌蚪丨老版| 精品久久久久久久人人人人传媒| 成人午夜视频在线观看| 2欧美一区二区三区在线观看视频| 成人性生交大合| 精品国产欧美一区二区| 97超碰欧美中文字幕| 国产亚洲精品福利| 亚洲欧美综合| 国产精品久久久久久久久免费丝袜 | av福利精品导航| 26uuu久久综合| 91尤物视频在线观看| 久久久久久久久久久久久夜| 中文字幕国产一区| 亚洲国产影院| 亚洲激情网站免费观看| 美腿丝袜亚洲综合| 欧美日韩激情一区二区| 懂色av一区二区三区蜜臀| 国产大陆a不卡| 久久久久久**毛片大全| 国产在线视频欧美一区二区三区| 国产精品国产三级国产| 亚洲欧洲日本一区二区三区| 亚洲成人精品一区二区| 欧美性色黄大片手机版| 国产乱码字幕精品高清av| 精品久久久久久亚洲综合网 | 最近中文字幕一区二区三区| 国产精品久久久对白| 亚洲va天堂va国产va久| 色播五月激情综合网| 国产一区二区福利| 久久精品一区蜜桃臀影院| 亚洲美女少妇无套啪啪呻吟| 亚洲综合在线五月| 一本大道久久精品懂色aⅴ| 国内精品在线播放| 久久精品亚洲乱码伦伦中文| 国产日韩一区二区| 久久精品99国产精品| 精品亚洲国产成人av制服丝袜 | 精品国产乱码久久久久久久| 亚洲午夜激情| 偷拍自拍另类欧美| 日韩一区二区三区高清免费看看| 欧美日韩亚洲一区| 亚洲va欧美va人人爽午夜| 欧美日韩精品一区二区三区| 91麻豆福利精品推荐| 国产区日韩欧美| 狠狠色狠狠色合久久伊人| 2017欧美狠狠色| 亚洲一区二区三区色| 国产一区二区三区国产| 国产精品久久免费看| 久久精品主播| 北条麻妃国产九九精品视频| 亚洲毛片av在线| 在线观看91av| 精品91视频| 另类小说一区二区三区| 久久久久久久久99精品| 亚洲精选国产| 激情欧美一区二区| 中文字幕一区av| 欧美三级日本三级少妇99| 欧美日韩在线精品| 美美哒免费高清在线观看视频一区二区| 欧美成人video| 久久国产精品久久久久久电车| 成人动漫在线一区| 亚洲一区国产视频| 欧美成人一区二区| 久久精品五月| 亚洲在线观看免费视频| 欧美变态口味重另类| 免费久久久一本精品久久区| 成人性生交大合| 亚洲r级在线视频| 国内精品久久久久久久果冻传媒 | 国产精品一区二区不卡| 亚洲男人天堂av网| 日韩一区二区精品在线观看| 国产嫩草一区二区三区在线观看| 国产成人在线视频网址| 亚洲免费在线视频一区 二区| 欧美日产国产精品| 亚洲福利av| 国产成人精品亚洲午夜麻豆| 亚洲第一久久影院| 国产婷婷精品av在线| 在线观看免费亚洲| 亚洲伦理一区| av亚洲精华国产精华| 日精品一区二区| 中文字幕在线观看一区| 91精品综合久久久久久| 国产视频不卡| 欧美~级网站不卡| 久久97超碰国产精品超碰| 亚洲视频小说图片| 亚洲激情精品| 国产成人精品免费网站| 亚洲成人福利片| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 亚洲精品一区二区三区在线观看 | 亚洲精品一区在线观看| 久热精品视频| 在线观看亚洲| 93久久精品日日躁夜夜躁欧美| 久久国产精品99久久人人澡| 亚洲综合色视频| 中文字幕av一区二区三区高| 日韩欧美亚洲另类制服综合在线| 一本一道波多野结衣一区二区| 激情欧美一区二区三区| 国产一区在线观看视频| 亚洲高清免费在线| 欧美激情一区二区三区蜜桃视频 | 国产精品久久久久久久蜜臀 | 日韩av网站在线观看| 亚洲精品国产精华液| 国产女同互慰高潮91漫画| 欧美成人精品1314www| 欧美无乱码久久久免费午夜一区 | 捆绑紧缚一区二区三区视频| 亚洲小说春色综合另类电影| 亚洲欧洲99久久| 久久网站热最新地址| 欧美一区二区在线播放| 欧美视频一区二区三区四区 | 一本色道久久综合亚洲精品高清 | 欧美tickle裸体挠脚心vk| 欧美日韩在线播放| 色婷婷亚洲一区二区三区| 亚洲一区二区高清视频| 国产精品theporn| 欧美精品成人| 色综合天天在线| 99国内精品久久| 99这里只有精品| av色综合久久天堂av综合| 国产成人久久精品77777最新版本| 紧缚捆绑精品一区二区| 另类欧美日韩国产在线| 日韩av一区二区在线影视| 日韩国产高清在线| 丝袜亚洲精品中文字幕一区| 亚洲国产另类av| 亚洲一区在线观看免费观看电影高清| 亚洲少妇中出一区| 亚洲图片激情小说| 亚洲日本在线a| 一区二区三区欧美日| 亚洲精品欧美专区| 亚洲综合999| 一区二区三区四区高清精品免费观看| 亚洲精品ww久久久久久p站| 亚洲天堂av老司机| 亚洲乱码国产乱码精品精98午夜 | 91视频免费观看| 99久久精品一区| 91蜜桃视频在线| 99久久精品国产网站| 欧美区一区二| 在线看无码的免费网站| 国产日韩精品一区观看| 欧美精品一区二区三区在线播放| 精品精品国产高清a毛片牛牛| 欧美xxx久久| 欧美精品一区二区三| 2021国产精品久久精品| 中文字幕乱码日本亚洲一区二区| 国产精品久久久久久久蜜臀| 一区二区三区中文字幕| 好吊视频一区二区三区四区| 亚洲三级免费| 美女尤物久久精品| 91国偷自产一区二区开放时间| 久久国产一二区| 91久久精品一区二区二区| 欧美色综合天天久久综合精品| 91精品国产麻豆| 久久久久久久久久久99999| 国产精品天干天干在观线|