论用py制作软件项目更换界面语音

好啦,我死回来更新啦

前置内容:前置内容(配置文件篇)

大家在编写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做软件的小伙伴继续铺路

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值