python怎么设置窗口大小_python – 如何找出所需的窗口大小?

我有一个包含标签w的窗口,其文本可以是给定种类中的任何一种(在本例中为“Hello World!”一次,两次和三次):

from Tkinter import *

import time

root = Tk()

text = "Hello, World! "

w = Label(root)

for i in range(1, 4):

w["text"] = text*i

w.update_idletasks()

w.grid()

w.update_idletasks()

time.sleep(1)

root.mainloop()

我想将窗口的大小设置为固定宽度.这个宽度应该是w可以获得的最长文本所需的宽度.我怎样才能最轻松地做到这一点?我是否必须遍历所有可能的文本,读取相应的窗口宽度并将最终宽度设置为这些值的最大值?如果这是最好的方法,如何在屏幕上没有窗口的情况下执行此操作?

解决方法:

如果你不循环使用它们,你怎么知道最大文本的大小?唯一的可能是早先知道每个的大小,但是你已经解决了问题.因此,您只需设置标签并检查窗口所需的宽度,然后检查此宽度是否大于当前最大值,并在需要时更新它.如果窗口恰好在此过程中显示,您可以调用withdraw,执行所需的一切,然后调用deiconify.

import time

import random

import Tkinter

root = Tkinter.Tk()

root.withdraw()

text = "Hello, World! "

w = Tkinter.Label()

w.grid()

maxwidth = 0

for _ in range(10):

i = random.randint(1, 5)

w["text"] = text*i

print i

w.update_idletasks()

maxwidth = max(maxwidth, root.winfo_reqwidth())

root.wm_minsize(maxwidth, root.winfo_reqheight())

root.wm_maxsize(maxwidth, int(1e6))

root.deiconify()

root.mainloop()

标签:python,tkinter

你可能感兴趣的:(python怎么设置窗口大小)