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、分享成功!
