Python tkinter列表框小部件:带有';乱七八糟

Python tkinter列表框小部件:带有';乱七八糟,python,unicode,tkinter,listbox,tk,Python,Unicode,Tkinter,Listbox,Tk,使用python 2.7和Tkinter 我有一个列表框小部件和一个显示相同文本的文本小部件。 在文本小部件中,所有内容看起来都是正确的。但是在列表框中,字体不同,如果有字符,文本就会变得混乱 如何正确显示列表框文本 以下是文本小部件的屏幕截图: 这里有一个列表框小部件: 列表框创建代码为: self.r_list = Listbox(self.frame, selectmode='multiple', exportselection=0) for item in self.all:

使用python 2.7和Tkinter
我有一个列表框小部件和一个显示相同文本的文本小部件。
在文本小部件中,所有内容看起来都是正确的。但是在列表框中,字体不同,如果有字符,文本就会变得混乱

如何正确显示列表框文本

以下是文本小部件的屏幕截图:

这里有一个列表框小部件:

列表框创建代码为:

self.r_list = Listbox(self.frame, selectmode='multiple', exportselection=0)
for item in self.all:
    self.r_list.insert(END, item)
self.r_text = Text(self.frame)
self.r_text.insert(END, "\n".join(self.all))
self.r_text.config(state=DISABLED)
文本创建代码为:

self.r_list = Listbox(self.frame, selectmode='multiple', exportselection=0)
for item in self.all:
    self.r_list.insert(END, item)
self.r_text = Text(self.frame)
self.r_text.insert(END, "\n".join(self.all))
self.r_text.config(state=DISABLED)
其中self.all变量为:

[u'\u05d0\u05dc\u05d5\u05e8\u05d4', u"\u05e6'\u05d5\u05e4 \u05e6'\u05d5\u05e4"]

通过在列表框中设置字体解决

self.r_list = Listbox(self.frame, selectmode='multiple', exportselection=0, font=('Tahoma', 8))

不仅仅是Tahoma字体有效,我想这主要是默认字体的问题。

使用纯tk在linux和tk 8.6.1上都失败,在Windows 7-64和activestate tk 8.6.4上都失败。您考虑过使用\u05d9而不是ascii'吗?效果更好。@Brad Lanam,\u05d9不是“(撇号),而是一个י(希伯来文字母yod),在某些字体上可能看起来相同,但实际上不是(尤其是在列表框中,字体看起来根本不一样)。而且,这是希伯来文,所以它是非常错误的。撇号代码是\u0027,但当然这是已经存在的代码(python的string repr只是将其打印为ascii等价物)明白了(不懂希伯来语)。本质上,在windows上,有一些windows帮助程序代码(显然是
text
小部件正在使用的)可以转换希伯来文字符的显示。在阿拉伯语字符集(搜索站点:wiki.tcl.tk Arabic)上已经做了一些工作,可以处理从右到左的变化。Tk不能处理从右到左的语言,所以由您来解决它。@Brad Lanam,谢谢您的帮助。我找到了一个没有修复Tk的解决方案(见下面的答案)。