python设置窗口位置_python中tkinter窗口位置

相关学习课程:Python Tkinter 绘图项目 - 网易云课堂​study.163.com

一、关于主窗口的介绍:

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

1root.geometry("300x200+100+50")

这是什么意思呢?

其实:第一个是指窗口的宽度,第二个窗口的高度,第三个窗口左上点离左屏幕边界距离,第四个窗口左上点离上面屏幕边界距离。 那么,放在整段代码里如下:

1234from tkinter import *root = Tk()root.geometry("300x200+100+50")root.mainloop()

显示效果如下:

(1)窗口属性设置

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

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

添加窗口图标:root.iconbitmap(icon_file),icon_file就是一个.ico的图标文件,使用绝对或相对路径 设置窗口大小:root.geometry("x_WIDTHxx_HEIGHT"),其中将_WIDTH替换为窗口宽度,将_HEIGHT替换为窗口高度 设置窗口在屏幕上的位置:

root.geometry("+X+Y"),X/Y表示以屏幕左上角为顶点的窗口的坐标

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

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

销毁窗口:root.destroy()

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

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

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

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

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

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

root.resizable(width=False, height=False)#禁止改变窗口大小

root.resizable(0, 0) # 设置窗口大小不可变

(3)获取窗口的方法

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()Python Tkinter 绘图项目 - 网易云课堂​study.163.com

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值