大家都知道tkinter库中有很多控件和主窗口,因此这些控件和主窗口都有对应的屏幕坐标的信息。因此我们可以分别进行介绍。
他是以电脑屏幕的左上角为原点,向右是x,向下是y的这样的一个坐标系

一、关于主窗口的介绍:

我们见的比较多的命令如下:

window.geometry("300x200+100+50")

这是什么意思呢?

其实:第一个(300)是指窗口的宽度 x 第二个窗口(200)的高度 + 第三个窗口(100)左上点离左屏幕边界距离 + 第四个窗口(50)左上点离上面屏幕边界距离。

(1)窗口属性设置

在上面程序的基础上,在root = Tk()和root.mainloop()之间添加下面的代码以在窗口中添加元素

窗口标题: window.title("title_a")

添加窗口图标:window.iconbitmap(icon_file) #icon_file就是一个.ico的图标文件,使用绝对或相对路径

设置窗口大小:

window.geometry("x_WIDTH x x_HEIGHT")  #其中将_WIDTH替换为窗口宽度,将_HEIGHT替换为窗口高度 设置窗口在屏幕上的位置:
window.geometry("+X+Y")    #X/Y表示以屏幕左上角为顶点的窗口的坐标
#或者是
window.geometry("x_WIDTH x x_HEIGHT+X+Y")

(2)常用的事件处理函数:

刷新窗口状态: window.update()

销毁窗口: window.destroy()

自动触发事件: window.after(sec,command) #表示多少秒以后自动执行command

置顶窗口: window.wm_attributes('-topmost',1)

隐藏窗口外部: window.overrideredirect(True)

设置最大的窗口: window.maxsize(600, 400)

设置最小的窗口: window.minsize(300, 240)

设置窗口是否可以缩放(两种方法):

window.resizable(width=False, height=False)#禁止改变窗口大小window.resizable(0, 0) # 设置窗口大小不可变

(3)获取窗口的方法

winfo_x() 方法获得窗口的x坐标,
winfo_y() 方法获得窗口的y坐标
winfo_width() 方法获得窗口的宽度
winfo_height() 方法获得窗口的高度
以上四个方法都是无参方法,通过返回值我们可以获得窗口的宽高。

from tkinter import *def go():txt = '窗口的左上角坐标为:(%s,%s)\n窗口的高度为:%s窗口的宽度为:%s' \% (root.winfo_x(),root.winfo_y(),root.winfo_width(),root.winfo_height())label1.configure(text=txt)root.after(1,go)root = Tk()
root.geometry("300x200+100+50")
label1 = Label(root)
label1.pack(expand=YES)
go()
root.mainloop()

运行结果如下:

(4)一个很重要的知识点

我们使用上述的方法得到的位置和宽高,其实是tk初始化时的一个值。因此在初始化的时候默认都是1,如果需要获取准确的位置和大小信息 此时我们调用update方法,刷新win窗口。

运行脚本如下:

import tkinter
win = tkinter.Tk()
win.geometry("100x100")
print("初始化的窗口的宽度和宽度为 %s * %s" % (win.winfo_width(),win.winfo_height()))
win.update()
print("update后的窗口的宽度和宽度为 %s * %s" % (win.winfo_width(),win.winfo_height()))
win.mainloop()

(5)常用的一些位置处理函数

设置窗口最大化

#设置窗口最大化:
#方法一
root = Tk()
w, h = root.maxsize()
root.geometry("{}x{}".format(w, h)) #看好了,中间的是小写字母x
#方法二
root = Tk()
w = root.winfo_screenwidth()
h = root.winfo_screenheight()
root.geometry("%dx%d" %(w, h))
#方法三
root = Tk()
root.attributes("-fullscreen", true)

设置居中显示

def center_window(root, width, height):screenwidth = root.winfo_screenwidth()screenheight = root.winfo_screenheight()size = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)print(size)root.geometry(size)root.update()print(root.winfo_x())

调用脚本:

import tkinter as tk
root = tk.Tk()
root.title('测试窗口')
center_window(root, 500, 340)
root.mainloop()

二、关于控件的位置介绍

其实跟主窗口的访问方式类似,主要是要找到对应的方法和函数。

import tkinter as tkdef center_window(root, width, height):screenwidth = root.winfo_screenwidth()screenheight = root.winfo_screenheight()size = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)root.geometry(size)root.update()def go():txt = 'Label1控件的位置信息如下:%s' % label1.winfo_geometry()label2.configure(text=txt)root.after(1,go)root = tk.Tk()
root.title('测试窗口')
center_window(root, 500, 340)
label1 = tk.Label(root, text='测试用途的Label控件')
label1.pack(expand=tk.YES)
label2 = tk.Label(root)
label2.pack()
go()
root.mainloop()

主要用到的函数为:label1.winfo_geometry()

运行的效果如下:

具体参考:https://blog.csdn.net/dhjabc_1/article/details/105428853

python的tkinter窗口位置\坐标\大小等知识(自用笔记)相关推荐

  1. MFC窗口位置和大小的获取

    最近在做一个项目,需要控件随对话框大小的变化而变化,因此需要准确获取对话框窗口.控件的大小和位置. 经过好一番查寻.测试,终于看到了希望.下面是一些获取窗口位置和大小的函数,示例如下: 1.获取屏幕分 ...

  2. python获取软件窗口的坐标

    1.话不多说直接上源码再逐行解释 import win32gui# 获取窗口句柄 hwnd = win32gui.FindWindow(None, '窗口标题')# 获取窗口左上角坐标和右下角坐标 l ...

  3. Python设置Tkinter窗口屏幕居中

    要求:tkinter设置窗口在屏幕中间显示 sw = window.winfo_screenwidth() #得到屏幕宽度 sh = window.winfo_screenheight()#得到屏幕高 ...

  4. python 比较矩阵对应位置元素大小,比较矩阵的两个元素并在不同位置填充相对值...

    我认为您可以简单地使用python而不使用numpy来完成这项工作您可以简单地使用符号a[subarray][index]来访问和编写数组,如解决方案所示:a=[['-','T','S','V','K ...

  5. python视窗版_Python GUI tkinter窗口视窗学习3

    Python GUI tkinter窗口视窗学习3 # test9 import tkinter as tk window = tk.Tk() window.title('my test9') win ...

  6. 计算机打开页面恢复默认大小,win10怎样恢复Windows窗口默认的大小?

    正在阅读:win10怎样恢复Windows窗口默认的大小?win10怎样恢复Windows窗口默认的大小? 2018-04-10 15:56 出处:其他 作者:佚名 责任编辑:linshitang 现 ...

  7. 用python的tkinter做游戏(八)—— 实现图片在tkinter中自适应大小(自动匹配窗口)

    用python的tkinter做游戏 系列: 用python自带的tkinter做游戏(一)-- 贪吃蛇 篇 用python自带的tkinter做游戏(二)-- 俄罗斯方块 篇 用python自带的t ...

  8. python的运行窗口-Python初学——窗口视窗Tkinter

    此篇文章是跟着沫凡小哥的视频学习的,附上学习网址:https://morvanzhou.github.io/tutorials/python-basic/ 什么是 tkinter 窗口 1.1 什么是 ...

  9. python showinfo 方法_Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)

    Tkinter支持16个核心的窗口部件,这个16个核心窗口部件类简要描述如下: Button:一个简单的按钮,用来执行一个命令或别的操作. Canvas:组织图形.这个部件可以用来绘制图表和图,创建图 ...

最新文章

  1. Windows XP下vs2010中配置OpenCV2.4.3
  2. 第13章代码《跟老男孩学习Linux运维:Shell编程实战》
  3. 作为程序员,你是否曾经想过写一本书?
  4. 简单python画圣诞树图片-python圣诞树编写实例详解
  5. rpm的使用 怎样查看rpm安装包的安装路径
  6. ABAP常用Function
  7. .Oracle管理及常用基础脚本
  8. 《构建之法》阅读笔记01
  9. php 添加inotify扩展,php inotify 扩展的安装
  10. 浅说深度学习(4):增强学习
  11. Java性能最后一个领域:去除垃圾回收器
  12. word怎么把页面顺序倒过来_Word打印错乱——出现两个第1页
  13. wsl2 Ubuntu安装Anaconda3
  14. 当心路径层次太深,名字太长造成解压失败
  15. 写论文word生成目录
  16. 全球与中国稀土荧光粉市场深度研究分析报告
  17. MAP对象(js从入门到疯癫)
  18. 交通事故现场拍照技巧
  19. 老男孩linux培训-python三期下载
  20. java二维数组添加数据_Java自学路线图

热门文章

  1. 树莓派3B+功耗测试、初体验、图形化配置树莓派3B+配置方法。Raspberry Pi 3B+测评...
  2. Vivado联合ModelSim仿真设置(附图步骤)
  3. 通讯线路物理层编码类型总结(NRZ,MLT-3,4B/5B,8B/10B,64B/66B...)
  4. C++ dynamic_cast操作符
  5. 2017 OWASP十大安全趋势榜单变化解析
  6. trigger自动执行事件
  7. (NO.00003)iOS游戏简单的机器人投射游戏成形记(七)
  8. Google Guava Cache 移除监听器
  9. 艺术是什么?不懂很难泡到妞!
  10. cisco路由器基本实验之一 静态路由的配置(Boson NetSim