问题:如何使用 Kivy 在 TextInput 中正确呈现所有 Unicode 字符?
下面有更多详细信息
我正在生成 0x0200 到 0x9990 之间的随机 Unicode 字符,这是一个很大的问题,问题是很大一部分字符无法在 TextInput 中正确呈现,更具体地说,只有不到一半的字符可以工作。
无论什么不渲染的东西最终都会看起来像一个带有 x 的小矩形,但是当我将其复制并粘贴到另一个显示源中时,它工作正常。我已经通过空闲运行了代码,它显示得很好,问题似乎出在 kivy 上,对于为什么会发生这种情况有什么建议吗?
<小时/>import random
import kivy
from kivy.uix.textinput import TextInput
from kivy.core.window import Window
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.app import App
kivy.require('1.9.1')
class testclass(object):
def example(self, event):
k_len = list()
complete = ''
for i in range(32):
k_len.append(random.randint(0x0200, 0x9990))
for i in k_len:
if i != 32:
complete += chr(i)
result.text = complete
t = testclass()
Root = Widget(size = (600, 200))
buttonOne = Button(text = 'click me', pos = (1,170), size = (120,30))
buttonOne.bind(on_press = t.example)
result = TextInput(hint_text = 'Output: ', size = (600, 50), pos = (0, 0), multiline = (True))
Root.add_widget(buttonOne)
Root.add_widget(result)
class testappApp(App):
def build(self):
return Root
Window.size = (600, 200)
if __name__ == '__main__':
testappApp().run()
此代码仅在您有 kivy 设置时才有效,您可以调整它以在空闲状态下工作,但正如我所说,代码按预期工作,只是在 kivy 中无法正确显示:)
最佳答案
您的字体似乎不支持这些字符 - 切换到另一种支持该范围的字体(请参阅https://en.wikipedia.org/wiki/Unicode_block以获取有关需要的更多信息)
关于python - 大量 Unicode 字符在 kivy TextInput 中无法正确呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39128198/