我正在使用 Tkinter,并且我正在尝试为希伯来语和阿拉伯语等语言更改文本小部件方向(当用户键入时 - 它将是 RTL)。
我怎么能允许ctrl + shift
这样的文本方向会改变 rtl & ltr?
或者还有其他方法可以做到吗?
我正在使用 Tkinter,并且我正在尝试为希伯来语和阿拉伯语等语言更改文本小部件方向(当用户键入时 - 它将是 RTL)。
我怎么能允许ctrl + shift
这样的文本方向会改变 rtl & ltr?
或者还有其他方法可以做到吗?
我有一个正在进行的示例供您参考。
在这里,我根据列表创建 2 个标签。然后,我们可以使用翻转文本的方法来更改文本的格式。我觉得它应该切换回 LTR 并锚回到左侧,但由于某种原因该部分无法正常工作。我会继续努力,但如果有人知道为什么会这样,请告诉我。
import tkinter as tk
class Example(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.columnconfigure(0, weight=1)
self.testing_frame = tk.Frame(self)
self.testing_frame.grid(row=0, column=0, stick="nsew")
self.testing_frame.columnconfigure(0, weight=1)
self.list_of_items = ["Word to be reversed!", "Some other words to be reversed!"]
self.list_of_labels = []
for ndex, item in enumerate(self.list_of_items):
self.list_of_labels.append([tk.Label(self.testing_frame, text=item, anchor="w"), "ltr"])
self.list_of_labels[ndex][0].grid(row=ndex, column=0, sticky="ew")
self.bind("<Control-Shift_L>", self.flip)
def flip(self, event):
for item in self.list_of_labels:
if item[1] == "ltr":
item[0].config(text=item[0]["text"][::-1], anchor="e")
item[0].grid(sticky="ew")
item[1] = "rtl"
else:
item[0].config(text=item[0]["text"][::-1], anchor="w")
item[0].grid(sticky="ew")
item[1] = "ltr"
if __name__ == "__main__":
Example().mainloop()
结果:
现在有重量!