Label小部件不进行换行.Message小部件将换行文本,但强制它大致为方形.这是一个例子.
from Tkinter import *
root = Tk()
root.title("hello")
Message(root, text=48*'xxxxx ').grid(row=0, column=0, columnspan=3)
Label(root, text='Name:').grid(row=1, column=0)
Entry(root, width=50).grid(row=1, column=1)
Button(root, text="?").grid(row=1, column=2)
Button(root, text="Left").grid(row=2, column=0)
Button(root, text="Center").grid(row=2, column=1)
Button(root, text="Right").grid(row=2, column=2)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
我知道我可以用它aspect=700来改变形状,但硬编码这样的数字就是我想要避免的.
小智 31
Tkinter标签小部件确实换行.只是默认设置是不包装.要使标签上的文本换行设置"wraplength"参数,其单位为屏幕单位,因此请尝试wraplength = 50并根据需要进行调整.您还需要将"对齐"设置为LEFT,RIGHT或CENTER.希望有所帮助.
rem*_*rem 10
wraplength确实是正确答案,但它是固定宽度。如果您有动态调整大小,Label则需要wraplength在调整大小时进行更新。您可以通过绑定<Configure>事件来做到这一点:
label = tk.Label(root, text="My long text")
label.bind('<Configure>', lambda e: label.config(wraplength=label.winfo_width()))
Run Code Online (Sandbox Code Playgroud)
在某些配置中,我确实得到了稍微偏离的换行,即文本稍微偏离换行前的边缘Label。我还没有弄清楚这是否是由于字体、任何边距/填充或发生了什么造成的。label.winfo_width()我只是通过在将其输入之前减去固定数量来解决这个问题wraplength。
小智 8
welcomenote = Label(root, text="Your long text", font="helvetica 14",
wraplength=300, justify="center")
welcomenote.pack()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23742 次 |
| 最近记录: |