在pygame中列出系统所有字体名称并展示效果

pygame对中文的支持并不是十分友好,所以当程序中需要显示中文时,就要看一下系统中的所有字体,哪些是支持中文的,哪些不支持,哪些支持的不完整。

我简单写了一个小程序,用pygame列出系统中所有的字体,并显示一些英文字符和中文,如果内容中看不到中文,说明该字体不支持中文,如果显示的中文不完整,则也不建议使用此字体,运行结果如下:

从结果中可以看出,第14、17、22等字体对中文支持到位,第87、88、89等字体虽然支持中文,但在pygame中输出并不理想,第1、2、3等字体就不支持中文仅支持英文,第16、26、85等字体是一些特殊字体(如图标)连英文都不支持了...

完整代码如下:本人爱用中文名称变量,这样就不用写那么多注释了,运行正常哦。

# 列出系统中所有字体
import pygame
from pygame.locals import *
pygame.init()

infoObject = pygame.display.Info()     # 获取屏幕分辨率
display_width = infoObject.current_w-50
display_height = infoObject.current_h-100
gameDisplay = pygame.display.set_mode((display_width, display_height))  # , FULLSCREEN, 32)

所有字体列表 = pygame.font.get_fonts()  # 获取所有可使用的字体
字体数量 = len(所有字体列表)
所有字体列表.sort()
字体大小 = 16
一屏几行 = display_height//字体大小-1
列宽 = 字体大小*25

pygame.display.set_caption('列出系统中所有字体')
gameDisplay.fill((240, 240, 240))
clock = pygame.time.Clock()

for 计数 in range(字体数量):
    第n列 = 计数//一屏几行
    第n行 = 计数 % 一屏几行
    font = pygame.font.SysFont('simsun', 字体大小)  # 中文字体 宋体
    text = font.render(str(计数+1)+'  '+所有字体列表[计数], False, (255, 0, 0))
    rect = gameDisplay.blit(text, (第n列*列宽+10, 第n行*字体大小))

    font = pygame.font.SysFont(所有字体列表[计数], 字体大小)
    text = font.render("128*Abc+中国汉字!", False, (0, 0, 0))
    gameDisplay.blit(
        text, (rect[0]+rect[2]+10, 第n行*字体大小))

pygame.display.update()
clock.tick(15)

# 设置窗口的关闭事件
running = True
while running:
    # 处理事件队列
    for event in pygame.event.get():
        # 检查是否点击了窗口的关闭按钮
        if event.type == pygame.QUIT:
            running = False

# 退出pygame
pygame.quit()

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘庆豪2007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值