Python3 tkinter 使用圖片作爲背景,並在該背景上加輸入框,按鈕

  最近用到了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)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章