由于网上只讲述原理的文章太多,怎么使用的文章太少,所以本人文章只负责展示效果及代码注释,不着重讲解原理
一、建立根窗口
本文利用kivy库建立的根窗口代码如下:
from kivy.app import App
from kivy.core.window import Window
class ZL_Love音乐(App):
def build(self):
##设置窗口底色##
Window.clearcolor = get_color_from_hex('#66CDAA')
return
if __name__ == '__main__':
ZL_Love音乐().run()
二、添加布局管理器
布局管理器的作用在于可以将下载器所需要的控件添加至窗口上并方便使用。代码如下:
from kivy.app import App
from kivy.core.window import Window
from kivy.uix.stacklayout import StackLayout
class 搜索显示页(StackLayout):
def __init__(self,color_hex,**kwargs):
super().__init__(**kwargs)
class ZL_Love音乐(App):
def build(self):
##设置窗口底色##
Window.clearcolor = get_color_from_hex('#66CDAA')
return 搜索显示页()
if __name__ == '__main__':
ZL_Love音乐().run()
三、添加控件
现在向布局管理器中添加控件:音乐下载器的显示框以控件及按钮控件,并设置音乐下载器的底层颜色及窗口名称。利用update_rect()的方式设置底层颜色及控件大小的好处在于:无论如何拖拽主窗口,所有控件都将跟随主窗口的变化而变化,也可适应不同手机的屏幕。代码如下所示:
##载入计算器项目需要的自定义库
from Headerfile import *
class 搜索显示页(StackLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
##设置控件间隔
self.spacing = 10
##设置字体大小
self.标题大小 = 50
##添加标头##
self.add_widget(NameDataOnlyView('#66CDAA','ZL.Love音乐下载器',self.标题大小,1))
##搜索控件##
self.搜素控件 = TextInputButtons('#66CDAA','#F5F5DC',self.标题大小,self.搜索函数,'搜索',0.8,padding = [10,0,10,0],spacing = 10)
self.add_widget(self.搜素控件)
##搜素结果标头##
self.add_widget(MusicListname('#66CDAA',self.标题大小,'搜素结果'))
##绑定窗口大小函数##
self.bind(pos = self.update_rect,size = self.update_rect)
##添加显示歌曲控件##
self.歌曲列表显示控件 = ListDataOnlyView('#FFFFFF',1)
self.add_widget(self.歌曲列表显示控件)
def update_rect(self,*args):
##计算除歌曲列表显示控件外其他控件所占比例
self.剩余百分比 = 1-(self.标题大小*4+10)/Window.size[1]
self.歌曲列表显示控件.size_hint = [1,self.剩余百分比]
def 搜索函数(self,args):
print(self.搜素控件.数据输入.text)
class ZL_Love音乐(App):
def build(self):
self.icon = '图标.png'
##设置窗口底色##
Window.clearcolor = get_color_from_hex('#66CDAA')
return 搜索显示页()
if __name__ == '__main__':
##先判断保存路径是否存在##
保存路径 = '/sdcard/Android/data/ZL.Love/音乐/'
try:
##若路径不存在,则建立##
if Path(保存路径).is_dir() == False:
os.makedirs(Path(保存路径))
except:
if Path(保存路径).is_dir() == False:
os.makedirs(Path(保存路径))
##运行窗口##
ZL_Love音乐().run()
窗口样式如下所示:
总结
本文利用python和kivy以纯python的形式实现了音乐下载器的GUI窗口,该下载器的其他功能会在后续项目中逐步展示。