Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用Tkinter创建填充窗口宽度的换行文本?_Python_Tkinter - Fatal编程技术网

Python 如何使用Tkinter创建填充窗口宽度的换行文本?

Python 如何使用Tkinter创建填充窗口宽度的换行文本?,python,tkinter,Python,Tkinter,标签小部件不换行。消息小部件将对文本进行换行,但强制其大致为方形。下面是一个例子: 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).gri

标签
小部件不换行。
消息
小部件将对文本进行换行,但强制其大致为方形。下面是一个例子:

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()

我知道我可以使用
aspect=700
来更改形状,但像这样的硬编码数字是我试图避免的。

Tkinter
标签
小部件确实可以包装。只是默认设置为“不换行”。要获取要换行的文本,请设置
wraplength
参数,此参数的单位为屏幕单位,因此请尝试
wraplength=50
,并根据需要进行调整。您还需要将
justify
设置为
LEFT
RIGHT
,或
CENTER
,尝试以下操作:

tk.Label(root, textvariable=text, wraplength=500).pack()

这里500是字符放在下一行之前的像素量。

也可以在小部件上设置绑定,以便在小部件更改大小时动态更改换行长度。@JimDenny,屏幕单位是什么意思?我是新来的。你能发一些代码吗?我不知道在哪里插入WRAPLENGTH,所以这个答案没有用。@Brendan只需将这些参数添加到标签小部件中即可。更多细节请参见乌杜克·阿克潘的回答。
welcomenote = Label(root, text="Your long text", font="helvetica 14", 
wraplength=300, justify="center")
welcomenote.pack()