【瓢儿菜】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、分享成功!