教你用Python获得Tkinter(TK)窗口的大小(宽高)
来源:网络收集 点击: 时间:2024-04-14很多小伙伴可能会问,为什么要获得tk窗口的大小,大小多少可以自己设置。为什么还要通过程序来获得呢?
来看看小编写的这个,动态获得tk窗口宽高像素大小。
如图

上图就是通过tk窗口事件来进行动态的打印窗口的宽高。
那么,怎么获得窗口的大小宽高呢?
我们先创建一个tk窗口
#-*- coding:utf-8 -*-
import tkinter
#小编这里是python3,沃盆使用python2的小伙伴把tkinter换成Tkinter即可,否则报错哦
win = tkinter.Tk()
win.mainloop()
这样我们就创建了一个tk窗口,尽管这个窗口什么都没有。

我们要用到的著调方法是tk对象提供的winfo_width和winfo_height,从字面上我们都可以理解:winfo_width获得窗口的宽度,winfo_height获得窗口的高度。
以上两个方法都是无参方法,通过返回值我们可以获得窗口的宽高。
OK,我们插入代码
print(当前窗口的宽度为,win.winfo_width())
print(当前窗口的高度为,win.winfo_height())

这里很多小伙伴就会问了,为什么是1?窗口的宽高绝对不是1。
没错,但是程序并没有做错,我们只是少了点什么?我付政棍们需要刷新窗口数据,如果小伙伴经常使用tk这个图形库,就会知道,我们使用winfo_width和winfo_height得到的宽高其实是tk初始化时的一个值。
此时我们调用update方法,刷新win窗口。
win.update()
快看,是不是成功获得了窗口的宽高?

我们可以自定义窗口大小来看数据是否正确。
例如小编这里设置窗口大小 = 100 x 100,即宽100px高100px
win.geometry(100x100)
这里可能又有小伙伴会问了,为什么宽度又出错了?
其实很简单,因为tk帮我们创建了窗口装饰器,装饰器有以下几个部分:图标、标题、最大化、最小化和关闭按钮
这些装饰器占据了16个px,其实是15个,还有1个px像素点是作为窗口和装饰器之间的距离。
如图红色标记部分
所有代码为:
#-*- coding:utf-8 -*-
import tkinter
win = tkinter.Tk()
win.geometry(100x100)
win.update()
print(当前窗口的宽度为,win.winfo_width())
print(当前窗口的高度为,win.winfo_height())
win.mainloop()

人生苦短,我用Python
如有疑问,点击左下角的投票或者有得给小编留言,小编看到会第一时间回复您,谢谢
如果喜欢本经验,请关注我。可以把它分享给您的朋友,请点个投票点个收藏。谢谢,您的支持是我最大的动力。
PYTHONTKINTERPYTHON图形库TK查看窗口大小PYTHON版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_508105.html