如何解决程序启动后如何更改窗口大小?
我希望在启动程序后,它会检查其实际大小,当“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()
返回屏幕 width
和 winfo_screenheight()
以像素为单位的屏幕 height
。
window.geometry()
可以在需要时调用。
编辑:在程序启动后调用 window.geometry()
的示例(即使在水平调整大小被禁用后):
def resizeScreen():
window.geometry('520x300')
b = Button(window,text="RESIZE",command=resizeScreen)
b.pack()
无论何时单击此按钮,屏幕都会从当前大小调整大小。 您可以在不使用按钮的情况下调用相同的函数,只需调用该函数即可。这取决于您的代码以及您如何使用它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。