如何将滚动文本向右对齐?



问题很简单。滚动的文本框将以阿拉伯语写入其中。所以我需要对齐文本每当我输入到框的右边。没有任何属性,比如justify。我还使用了一个标签,但我不能这样做。

show_note = scrolledtext.ScrolledText(canvas, width=int(monitorWidth / 65), height=int(monitorHeight / 130),
font=("Times New Roman", 14))
canvas.create_window(cord(0.45, 0.65), window=show_note, anchor="ne")

是否有一个替代滚动文本控件,但有这些属性(宽度,高度,对齐和可以写入多行)?

我做了一些搜索,找不到任何其他方法来做到这一点,而不是将每个按键绑定到一个功能,该功能添加/编辑标签以从文本框中选择所有项目:

from tkinter import *
from tkinter import scrolledtext
root = Tk()
def tag(e):
text.tag_add('center','1.0','end')
text = scrolledtext.ScrolledText(root)
text.pack()
text.tag_config('center',justify='right')
text.bind('<KeyRelease>',tag)
root.mainloop()

您也可以让您的自定义小部件完成此操作,而不是为每个文件重复代码,因此更好的形式是:

from tkinter import *
from tkinter import scrolledtext
root = Tk()
class JustifyText(scrolledtext.ScrolledText):
def __init__(self,master,*args,**kwargs):
scrolledtext.ScrolledText.__init__(self,master,*args,**kwargs)
self.tag_config('center',justify='right')

self.bind('<KeyRelease>',self.tag)

def tag(self,e):
text.tag_add('center','1.0','end')
text = JustifyText(root)
text.pack()

root.mainloop()

是的,你可以使它更完美,通过文本框的当前宽度,并移动插入光标到该点,使它从该点开始。

最新更新