加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 如何找出所需的窗口大小?

发布时间:2020-12-20 13:33:02 所属栏目:Python 来源:网络整理
导读:我有一个包含标签w的窗口,其文本可以是给定种类中的任何一种(在本例中为“Hello World
我有一个包含标签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()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读