微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

程序启动后如何更改窗口大小?

如何解决程序启动后如何更改窗口大小?

我希望在启动程序后,它会检查其实际大小,当“window.winfo_width > 520”时,它会将其大小更改为 520。这可能吗?

from tkinter import *
from time import *

def upd():
    tstr = strftime("%I:%M:%s %p")
    ltime.config(text=tstr)

    lday.config(text=strftime("%A"))

    dtstr = strftime("%B %d,%Y")
    ldate.config(text=dtstr)
    ltime.after(1000,upd)


window = Tk()
window.config(bg='black')
window.title("Clock")
window.geometry('520x300')
window.resizable(0,1)


ltime = Label(window,font="Adobe 60",text='',fg='green',bg='black')
ltime.pack()
lday = Label(window,bg='black')
lday.pack()
ldate = Label(window,bg='black')
ldate.pack()

upd()

window.mainloop()

解决方法

首先,window.winfo_geometry() 将为您提供窗口的几何形状。

仅用于获取宽度,请使用 window.winfo_width()

仅用于获取高度,请使用 window.winfo_height()

例如

if window.winfo_width() > 520 :
     window.geometry('520x300')

现在,由于您使用的是 window.resizable(0,1),因此您禁用了调整窗口宽度的功能,因此窗口宽度将固定为 520。 那么,如果不能调整大小,它将如何超过 520? 如果启用它,然后希望窗口的宽度不超过 520:

Tkinter 提供 .maxsize().minsize() 来固定根窗口的大小。

例如如果您希望窗口的宽度不超过 520,则只需将 maxsize 中的宽度设置为 520。

window.geometry('520x300')
window.maxsize(520,300)

现在窗口的宽度调整不会超过 520。


如果您想根据用户的屏幕大小调整大小:

要获取屏幕尺寸,您可以使用 winfo_screenwidth() 返回屏幕 widthwinfo_screenheight() 以像素为单位的屏幕 height

window.geometry() 可以在需要时调用。


编辑:在程序启动后调用 window.geometry() 的示例(即使在水平调整大小被禁用后):

def resizeScreen():
    window.geometry('520x300')

b = Button(window,text="RESIZE",command=resizeScreen)
b.pack()

无论何时单击此按钮,屏幕都会从当前大小调整大小。 您可以在不使用按钮的情况下调用相同的函数,只需调用该函数即可。这取决于您的代码以及您如何使用它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。