shepherdpp / qteasy

a python-based fast quantitative investment module
BSD 3-Clause "New" or "Revised" License
73 stars 28 forks source link

k线乱码 #173

Closed roc138 closed 1 month ago

roc138 commented 3 months ago

大神在macos上开发的吧,windows没pingfang字体,乱码了。

811-2
shepherdpp commented 2 months ago

是的,忽略了Mac OS和windows字体的问题。可否建议一个跨平台的字体?

shepherdpp commented 2 months ago

@roc138,感谢您指出问题!

为了解决这个问题,在下一个版本更新中,我打算对windows系统使用'Heiti TC'字体,不过我现在身边没有windows环境,可能还需要您帮忙确认一下字体的效果:

需要解决问题,只需要在visual.py文件中作以下修改:

1, 在文件中新增中文字体定义:

import os  # 判断操作系统类型并根据操作系统设置字体: windows: 'Heiti TC', MacOS: 'pingfang HK'
zh_font_name = 'Heiti TC' if os.name == 'nt' else 'pingfang HK'

2, 设置Title_font和normal_label_font中的中文字体为zh_font_name,(在visual.py原40行与66行)

title_font = {'fontname': zh_font_name,
              'size':     '16',
              'color':    'black',
              'weight':   'bold',
              'va':       'bottom',
              'ha':       'center'}

normal_label_font = {'fontname': zh_font_name,
                     'size':     '12',
                     'color':    'black',
                     'weight':   'normal',
                     'va':       'bottom',
                     'ha':       'right'}
roc138 commented 2 months ago

image Heiti TC 也提升不存在 STFangsong 可以。 image

shepherdpp commented 2 months ago

感谢您的贡献!

shepherdpp commented 2 months ago

@Roc38, 不过仿宋体的显示效果跟界面上其他的英文字体(以Arial为主)不太协调,我考虑应该使用类似黑体的字体,可否再请你帮忙测试一下,下面几种字体的显示效果如何?

请你帮忙测试的字体包括:

还有其他字体可用但是楷体更加不搭,因此就算了,麻烦测试一下上面两个字体可以吗?非常感谢!

ZH-ziti

我会立即在最新版本1.3.2中暂时先使用“STFangsong”作为Windows环境下的字体,等您确认结果后,再升级为显示效果更搭一些的其他字体

shepherdpp commented 1 month ago

在最新的qteasy更新v1.3.10中,新增了三个不同的qt配置项: qt.QT_CONDIG['ZH_font_name_MAC'], qt.QT_CONDIG['ZH_font_name_WIN'], qt.QT_CONDIG['ZH_font_name_LINUX'], 通过配置上面的三个选项,可以在不同的操作系统环境下自行设置字体,设置后重新打印图表即可立即生效。例如:

>>> qt.QT_CONFIG['ZH_font_name_WIN'] = 'Microsoft YaHei'
>>> qt.candle('000651.SZ']

得到下面图表,字体已经被设置为微软雅黑。当系统中不存在该字体时,设置其他字体即可。

image

由于字体可以自行设置,该问题已经得到解决,即将关闭该Issue