好啦,我死回来更新啦
前置内容:前置内容(配置文件篇)
大家在编写py软件中,往往想要更加样气点,亦或者想要让软件做出国内,那么外面往往会增加其他语言在外面的程序上。
外面子啊上篇的配置文件篇,外面知道了可以将项目的数据统一的存放在本地,从而下次运行时一便再读取。那么我们也可以将项目数据中的文本,以配置文件的形式去储存。
那么我们就得到了个:
每个大类分别对应每个界面,将每个界面的文本信息用统一的变量送到配置文件里
英文(其他)亦是如此
然后我们来看读取的部分:
def read(self,num = language_list.index('English.cfg')):
path = self.remove_symbol(tpath)
with open('{0}/language/{1}'.format(path,self.languge()[num]),encoding='utf-8')as f:
d = ConfigParser()
all = []
part = {}
d.read('./language/{}'.format(self.languge()[num]),encoding='utf-8')
sec = d.sections()
for i in sec:
for j in d.options(i):
a = {j:d.get(i,j)}
part = dict(part, **a)
all.append(part)
part = []
return all
这是我在项目中的截取(self因自己需求而定)
它的原理很简单,是将该个语言的各项以列表+字典形式储存,列表是每页所要存放的字典,字典里面是每页所包括的文本:
最前面是该语言的信息,如它的名字&所支持的字体,后面依次是每页的字典。
那么最后就是在每页的显示部分啦
可以看到上个代码,我们在read()中有返回了列表all,它在这里就十分有用了。
all[0],也就是该语言的信息,我们用.get({key})来获取相对应的value,这里就是获取"font"中的SimHei 字体。下面的亦是如此
那么下个问题也就出现了:
更改了语言后,那我的文本间距怎么控制呢?
我们可以先从这两处断点说起:
pygame很敏锐的察觉到了这点,并给我们提供了解决此的函数 .get_XX()
如这里我是要的language文本中的宽度(x),那我就用的是.get_width(),会给我返回一个它所占据的长宽(我们也可以将其运用到按钮事件的判断范围中),这样,我就可以在原本的基础上加上它的变化,就可以啦~
这就是本次的所有内容,目前作者大大(本人)快要临近中考,所以这段时间也一直没更新,我会在中考完后恢复对此的更新,来给想用py做软件的小伙伴继续铺路