Kivy是一个开源的开发App的跨平台的Python的GUI库(系列1)
1 说明
1.1 Kivy 是一个开源的开发App的跨平台的 Python 的GUI库。
1.2 Kivy 可以免费使用(目前在麻省理工学院的许可下),并获得专业支持。
1.3 可以使用相同的代码库为 Linux,Windows,OS X,Android 和 iOS 开发 Kivy 应用程序。据说很强大,估计强大的原因就是超级跨平台。
1.4 本文为系列教程1:主要介绍kivy的安装,入门级介绍:窗口,helloworld,图片展示,介绍详细,注释清楚,适合收藏。
2 准备
2.1 官网https://github.com/kivy/kivy https://kivy.org/
2.2 安装pip install kivy #本机安装 sudo pip3.8 install kivy
pic.jpeg
3 窗口
3.1 代码一:#方法一:采用默认 from kivy.app import App # 小惊喜:窗口标题名就是Firstwin class FirstwinApp(App): #相同下面 #class Firstwin(App): pass if __name__ == "__main__": FirstwinApp().run() #Firstwin().run() #相同上面
3.2 代码二:#方法二:对窗口的大小,背景颜色,标题名和图标进行设置 from kivy.app import App from kivy.core.window import Window Window.size=(800,1000)#窗口大小 #背景颜色是白色,颜色设置采用opengl样式 #Window.clearcolor = (1, 1, 1, 1) #背景颜色是黑色,默认是黑色的 #Window.clearcolor = (0, 0, 0, 0) #Window.clearcolor = (1, 1, 0, 0) #黄色 #Window.clearcolor = (1, 0, 0, 0) #红色 #Window.clearcolor = (1, 0, 1, 0) #紫色 Window.clearcolor = (0, 0, 1, 0) #蓝色 class SecondwinApp(App): def build(self): #修改电脑的状态栏上面app图标,自定义,也可以默认 #self.icon = "/home/xgj/Desktop/kivy/icon.png" #认为修改窗口的标题名 self.title = "Hello world" if __name__ == "__main__": SecondwinApp().run()
4 Helloworld
4.1 代码一from kivy.app import App from kivy.uix.label import Label class Thirdwin(App): def build(self): #默认 return Label(text="Hello world") if __name__ == "__main__": Thirdwin().run()
4.2 代码二from kivy.app import App from kivy.uix.label import Label class Fourthwin(App): def build(self): #显示中文,中文字体,字体大小,字体颜色,提前下载好中文字体simsun.ttf label = Label(text="Hello World你好世界", font_name="simsun.ttf", font_size=32,color=(.8,.9,0,1), #字体大小 size_hint=(.5, .5), #字体位置 pos_hint={"center_x": .5, "center_y": .5}) return label if __name__ == "__main__": app = Fourthwin() app.run() #Fourthwin().run()
4.3 图
4.3 代码三from kivy.app import App from kivy.uix.widget import Widget from kivy.lang import Builder #kv文件内置法,相当于一个MyWidget类 kv = Builder.load_string(""" : Label: text: "Hello World你好世界" font_size: 32 color: .8,.9,0,1 font_name:"simsun.ttf" #字体位置 size_hint:(.5, .5) #在这里是错误的,我的bug,why? #pos_hint:{"center_x": .5, "center_y": .5} #pos_hint:({"center_x": .5}, {"center_y": .5}) #只能这样设置位置,左下角为0,0,默认窗口大小600,600 pos:300,300 """) #MyWidget作为一个类,在kv文件内 class MyWidget(Widget): pass #主窗口类 class Fifthwin(App): def build(self): #返回MyWidget return MyWidget() if __name__ == "__main__": Fifthwin().run()
4.4 代码四#k-6.py #控制层 from kivy.app import App from kivy.uix.widget import Widget #样式层:sixthwin.kv,注意是小写的six #其实就,是将类文件写在外面的kv,分离出来,是代码看起来简单,类似css文件 #注意kv文件的文件名是小写 class MyWidget(Widget): pass class SixthwinApp(App): def build(self): return MyWidget() if __name__ == "__main__": SixthwinApp().run()
4.5 样式层分离出来:sixthwin.kv文件: Label: text: "Hello World你好世界" font_size: 32 color: .8,.9,0,1 font_name:"simsun.ttf" #字体位置 size_hint:(.5, .5) #在这里是错误的 #pos_hint:{"center_x": .5, "center_y": .5} #pos_hint:({"center_x": .5}, {"center_y": .5}) #只能这样设置位置,左下角为0,0,默认窗口大小600,600 pos:300,300
4.6 效果图
4.7 代码五:内置kv文件的另外一种方法#k-5.py #控制层 from kivy.app import App from kivy.lang import Builder #样式层 kv=""" #调用该函数 FloatLayout: Label: text: "Hello World你好世界" font_size: 32 color: .8,.9,0,1 font_name:"simsun.ttf" #字体位置 size_hint:(.5, .5) #在这里是错误的 #pos_hint:{"center_x": .5, "center_y": .5} #pos_hint:({"center_x": .5}, {"center_y": .5}) #只能这样设置位置,左下角为0,0,默认窗口大小600,600 pos:300,300 """ class SixthwinApp(App): def build(self): return Builder.load_string(kv) if __name__ == "__main__": SixthwinApp().run()
5 图片展示
5.1 代码:from kivy.app import App from kivy.uix.image import Image #默认窗口大小和图片大小 class Picwin(App): def build(self): #窗口标题名设置 self.title = "图片pic展示" #与本代码在同一个文件夹下 img = Image(source="pic.jpeg") return img if __name__ == "__main__": Picwin().run()
5.2 效果图
未完待续。
5个科普的抖音账号今天不仅书本是老师,好的抖音也是老师,很多孩子拿着手机都是沉迷于游戏,不妨把这几个给孩子看,既可以学到很多有用的知识,满足孩子的好奇心,又能开拓孩子的视野。第一个叫模型师老原儿,他
你见过最内向的人有多么内向?上周劝退了一名985学校毕业的员工,不是他能力不行,实在是个性太内向了。在招他进来之前,老大都是被他985院校的背景给吸引住了,美中不足的是他每份工作经历都比较短,老大认为是那些小
秋冬季节别忘给孩子多喝汤,开胃营养身体棒在这个季节有一碗热乎乎的汤是一件特别幸福的事情。尤其是汤里加上一点白胡椒,辛辣的味道搭配上鲜美的汤,一口下去全身都暖和了。很多家庭在秋冬季节,汤水的主食就是汤面,粥,非常单一,天天
儿童鼻炎难愈原是食积作怪文章出处httpdiscovery。cctv。com20070710101961。shtml医学指导河南中医学院一附院耳鼻喉科主任医师副教授任为河南中医学院一附院耳鼻喉科主任医师任
当妈的你有这苦恼吗?如果孩子不听话,跟你发脾气,耍性子,你会怎么做?我觉得这个问题是我们生活中最普遍却又最难解决的问题。曾经的我,很是不理解那些打骂孩子的家长,现在有了孩子,真的非常同情和理解作为家长
0时03分,北京!2022元旦宝宝呱呱坠地哇!2022年1月1日凌晨0时03分,北京妇产医院分娩室内传来一声响亮的啼哭,2022年新年宝宝呱呱坠地。3400克,50厘米,是个健康的小男孩!刚刚降生的小家伙儿眼睛还没睁开,就
老婆要生孩子了,待产包都要准备什么?深圳宝安妇幼待产的准妈妈准爸爸可以参考下1。饮料不要买红牛!医院不允许,推荐脉动2。纸巾不要买刀纸,用不上要带上纸巾和湿纸巾,妈妈和宝宝都会用到3。产褥垫按医院的尺寸去买,不要随便
什么是攒肚?攒肚与便秘的区别是什么?大便,是宝宝健康晴雨表,而观察记录宝宝的大便,则是很多家长都非常在意的一项育儿工作。一旦发现宝宝大便不太正常,比如好几天不拉,家长就难免紧张。3天没大便,是攒肚吗?这都4天没拉了,
怀孕50天,大家都有什么反应?我反应是为什么这么倒霉,以为我每次都是在过年的时候查出怀孕,每次怀孕反应都是很大,吐得稀里哗啦的,闻不了饭菜,一闻就是吐。会吐,我孕吐比较严重谢邀请,我怀孕50天的反应是浑身发冷,
老师放手不管,这难道不是家长想要的结果吗?现在的教育是一场家校正反力量对比的拔河。从现在形势来看,家长一方赢了!老师正在渐渐放手,退到只教书,当然,这也是个奢望!年轻的教师倘若也是在家教不严的环境中长大,无形中在拔河反的一
可以用棉签掏耳朵吗?用棉签掏耳朵一般是可以的,但郑医生一般不建议大家用棉签来掏耳朵。大部分人在生活中都有耳朵痒,想掏耳朵的时刻。但是从医生的角度来看,掏耳朵的习惯其实是不好的,作为医生,我们经常会遇到