我正在 Ubuntu 中使用 python 3.x,我试图在 tkinter 中显示一些表情符号。在 Windows 中,我通过显示等效代理对解决了这个问题Python:从非 BMP unicode 字符中查找等效代理对,但是在 Ubuntu 中,当我尝试使用一些表情符号执行此操作时,程序崩溃并给出此错误,
代码:
import tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(root)
canvas.pack()
x, y= 0, 0
for _ in range(100):
canvas.create_text(x, y, text='\ud83d\ude4f', anchor=tk.NW)
y += 10
root.mainloop()
错误:
X Error of failed request: BadLength (poly request too large or internal Xlib length error)
Major opcode of failed request: 139 (RENDER)
Minor opcode of failed request: 20 (RenderAddGlyphs)
Serial number of failed request: 199
Current serial number in output stream: 199
其实我不认为这是Python的问题,也许是操作系统的问题。 我还没有找到那么多的解决方案。
我真的不知道如何解决这个问题,但我过去使用 tkinter 的经验告诉我,这可能是字体的问题。您可以使用命令“xfd -fa“[此处为您的字体]””来查看您的字体的所有可能的表情符号/符号。我相信你必须安装适用于 ubuntu 的表情符号包, [1]:https://simpleit.rocks/linux/showing-emojis-in-ubuntu-linux/