【瓢儿菜】Python-Tkinter 窗体居中


1、晚上下班回家,捣鼓canvas 结合pillow模块显示图片,摸索窗体居中的法子,折腾一会儿。

2、设置窗体居中,先得到窗体的宽度、高度:

#获取屏幕宽、高
windowX = win.winfo_screenwidth()
windowY = win.winfo_screenheight()

3、设置窗体宽、高,计算窗体开始显示的中心坐标:

# 设置 窗口宽 高
x, y = 680,460
# 计算中心坐标
cen_x = (windowX-x) / 2
cen_y = (windowY-y) / 2
# print(cen_x, cen_y)
# 设置窗体宽高、显示坐标
win.geometry('%dx%d+%d+%d' % (x, y,cen_x, cen_y))

4、测试效果:

5、全部代码:

import tkinter as tk
from tkinter.messagebox import *
from PIL import Image,ImageTk

win=tk.Tk()
win.title("扑克牌程序")
#获取屏幕宽、高
windowX = win.winfo_screenwidth()
windowY = win.winfo_screenheight()
# 设置 窗口宽 高
x, y = 680,460
# 计算中心坐标
cen_x = (windowX-x) / 2
cen_y = (windowY-y) / 2
# print(cen_x, cen_y)
# 设置窗体宽高、显示坐标
win.geometry('%dx%d+%d+%d' % (x, y,cen_x, cen_y))
# canvas铺满整个窗体
cv=tk.Canvas(win,bg='pink',width=x,height=y)

imgs=[]
# 加载文件路径
img=Image.open(".\\img\\1.jpg")
# 设置图片显示大小
img.resize((160,100),Image.ANTIALIAS)
# 插入13张扑克牌
for x in range(0,13):
    imgs.insert(x*13,ImageTk.PhotoImage(img))
    cv.create_image((200+20*x,80),image=imgs[x])

# 设置按钮
bt1=tk.Button(win,text='重新发牌',width=60,height=40,command=None)
bt1.place(x=290,y=380,width=60,height=40)

cv.pack()

win.mainloop()

6、分享成功!