我遇到了Tkinter的Message
小部件的奇怪行为。它以前工作得很好,但现在它正在包装(日期和时间在左边的图像上,只有日期在右边的图像上),而不应该。我注意到时间被包装了几秒钟,而其他的没有,因为不是所有的字符都是相同的长度
请注意,图像是被裁剪的,但小部件实际上会继续使用大约200多个像素。我没有设置wraplength
(奇怪的是,它甚至没有被识别为一个选项,即使它在文档中),所以它仍然是默认的0
(没有包装)。我已经玩过很多次了,但是我想不出来
文本由字典生成,大致如下:
import tkinter as tk
root = tk.Tk()
root.geometry('500x500+0+0')
root.configure(bg='white')
desc = tk.Message(root)
desc.configure(bg='white')
desc.pack()
description={}
description['Date'] = '11 June 2020'
description['Time'] = '21:26:26'
description['Duration'] = 0
description['Overlay'] = str(False)
descToLines = [f'{key}:\t {val}' for key, val in description.items()]
linesToString = '\n'.join(descToLines)
desc.configure(text=linesToString)
root.mainloop()
事实上,在验证此最小代码时,时间线21:26:38
现在与Time
内联,但日期仍然不是。欢迎任何帮助
根据建议,我手动设置了
Message
的宽度,解决了这个问题。让我困惑的是,我认为它已经使用以下行设置:desc.place(x=0, y=0, height=0, width=300)
,但显然不是。至少不至于覆盖aspect
比率Tl;dr:在末尾添加
desc.configure(width=300)
可以解决问题下面是您如何看到缺少的内容:将消息框的背景颜色更改为另一种颜色。您将立即看到它的宽度太小。尝试:
然后:
其中:
相关问题 更多 >
编程相关推荐