从HFUTER停止维护以来,有一段艰难的时光,没有表白墙可以刷,校园网崩了就不能看课表,于是我决心照着HFUTER做个类似的App,名字都想好了:HfutCommunity,奈何太菜又太懒,不想学java,最后了解到了kivy,开始了一段奇妙的编程旅程(开始入坑).

kivy是python的一个库,用于开发具有用户界面和多点触控应用程序。它可以在Android,iOS,Linux,OS X和Windows执行

看这简介,有没有心动,能跨平台运行!就是说写一份代码,顶1.2.3.4.5,顶5份!最重要的跨Android和iOS!多么神奇的库!

入门kivy

安装过程可百度,kivy依赖pygame,cython等库,安装过程很顺利


看,一个简单的App就出炉了,只有一个界面,一个Label。

一般来说,逻辑与界面最好分开,逻辑放在.py里,界面放在.kv里。如下


了解css的我,写起.kv还是比较轻松的

注:github有很多kivy的例程,可以自行下载学习

进阶Kivy

来看些大神的作品,界面还是很好看的,比如



但是现在离HfutCommunity还远着

大师级Kivy

pydelhi

可以自行运行查看,就是有个坑,kivy不支持中文!就算在注释里添加中文也不行,编码格式包含GBK也会报错。支持中文的方法就是添加中文字体,下面会谈到



好,终于来了个正经的error:UnicodeDecodeError: 'gbk' codec can't decode byte 0x93 in position 522: illegal multibyte sequence

奇怪了,检查了代码里没有中文,怎么还报gbk的错误?还是来看看错误吧


还是很好找的,从蓝色文件链接上看,第二个main.py是程序入口,一个一个查看,最终定位到\network\__init__.py


目测是open()函数读取文件时没有用utf-8编码,加上encoding='utf-8'


好,再运行,成功了


这个项目对我帮助还是挺大的,就他这个页面管理的机制很合理,方便修改,数据存储,所以我就照着pydelhi的结构,开始构建我的HfutCommunity

然而只完成了一小部分就停了,原因下篇更新,到此成果如下



就不放更多的图了,请暂时无视界面美观性。哈哈,当然先写组件和功能,再整理UI啦