Python3 tkinter 使用圖片作為背景,並在該背景上加輸入框,按鈕
阿新 • • 發佈:2018-12-19
最近用到了tkinter,想用自己喜歡的圖片作為背景,看了不少部落格,可能是我少敲了什麼,很少有能成功執行的,最後終於發現了一個可行方案,於是在這裡記錄一下(程式碼為原創) 圖片使用的p站喜愛畫師的作品(因為是以前儲存的,抱歉沒找到畫師連結),侵刪。
import tkinter as tk from PIL import ImageTk, Image root = tk.Tk() #背景 canvas = tk.Canvas(root, width=1200,height=699,bd=0, highlightthickness=0) imgpath = 'background.gif' img = Image.open(imgpath) photo = ImageTk.PhotoImage(img) canvas.create_image(700, 500, image=photo) canvas.pack() entry=tk.Entry(root,insertbackground='blue', highlightthickness =2) entry.pack() canvas.create_window(100, 50, width=100, height=20, window=entry) root.mainloop()
輸出效果為
下面來進行解釋
使用canvas,其中width,height引數為畫布的寬和高,bd(borderwidth)為 文字框邊框寬度
canvas = tk.Canvas(root, width=1200,height=699,bd=0, highlightthickness=0)
使用PhotoImage,要注意,此處只能使用gif格式的圖片,關於gif圖片可以用ps開啟jpg,png然後另存為gif即可獲得gif格式的圖片
imgpath = 'background.gif' img = Image.open(imgpath) photo = ImageTk.PhotoImage(img)
此處的700,500為偏移引數,大家可以根據自己的需要進行調整
canvas.create_image(700, 500, image=photo)
canvas.pack()
此處將輸入框作為canvas的window即可實現在canvas上出現輸入框,按鈕同理,將create_window()中window引數改為相應的button即可
entry=tk.Entry(root,insertbackground='blue', highlightthickness =2) entry.pack() canvas.create_window(100, 50, width=100, height=20, window=entry)