python-3.x - 如何将滚动文本向右对齐?
问题描述
问题很简单,滚动的文本框将用阿拉伯语写入其中。因此,每当我在框的右侧键入它们的无属性时,我都需要对齐文本,例如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()
是的,您可以通过获取文本框的当前宽度并将插入光标移动到该点来使其更加完美,使其从该点开始。
推荐阅读
- objective-c - 比较 int 和 id 时,Objective C isEqual 不评估
- php - wp sanitize_callback 和静态方法
- f# - 键入记录字段以保存具有类型参数的函数
- c++ - 在 for 循环中处理复杂的 send recv 消息
- android - Android Studio 中的导航抽屉模板未在 xml 文件中显示任何设计
- inno-setup - 从 IWinHttpRequest 返回的二进制数据已更改,无法将 Variant 转换为字节数组
- java - 具有多个参数的 Java 枚举
- hyperledger - 如何在 Hyperledger Composer 上使用 REST API 删除资产/参与者?
- amazon-athena - AWS Athena 查询“表”创建时间
- python - 将背景图像放在 matplotlib 的雷达图上