How to add background image in Python Tkinter
In this post, you will learn how to add a background image using the Python Tkinter.
Tkinter is a standard cross-platform package for creating graphical user interfaces (GUIs). It is also called the Tk interface. It is an original GUI library for Tcl (Tool Command Language). Tkinter comes pre-installed with Python. The greatest strength of Tkinter is its simplicity. There are different ways to add a background image. But always, a label widget is used to set the background.
Add a background image using PhotoImage()
The PhotoImage class is used to display images in labels, buttons, canvases, and text widgets, which are present in the tkinter package. This function takes a file path as an argument and returns the image object. We can place the geometry manager that allows users to put the widget anywhere on the screen by providing x & y coordinates. The following code demonstrates this-
from tkinter import *
from PIL import ImageTk, Image
app = Tk()
app.title("Welcome")
img =Image.open('C:\\Python37\\scripts\\projects\\kittens.jpg')
bg = ImageTk.PhotoImage(img)
app.geometry("650x450")
# Add image
label = Label(app, image=bg)
label.place(x = 0,y = 0)
# Add text
label2 = Label(app, text = "Hello kittens",
font=("Times New Roman", 24))
label2.pack(pady = 50)
# Execute tkinter
app.mainloop()
Output of the above code: Add a background image using create_image()
In the given example, we have added a background image using the create_image() method in the canvas widget. The Canvas is a rectangular area planned for drawing pictures or other complex layouts. We can put graphics, text, widgets, or frames on a Canvas. The create_image() method of Canvas is used to draw an image on a canvas. The create_image() function doesn't accept an image directly. It uses an object that is created by the PhotoImage() method.
The process of adding a background image in Python Tkinter using the Canvas is almost the same as the above. First, we added the image file, then created a canvas and set the width and height. Then we have displayed the image using the create_image() function and set the text using the create_text() function.
#Import the required library
from tkinter import *
from PIL import Image, ImageTk
from tkinter import ttk
# Create object
root = Tk()
# Define the geometry of the window
root.geometry("500x450")
# Add the image file
bg = ImageTk.PhotoImage(file="C:\\Python37\\scripts\\projects\\natural_img1.png")
# Create a canvas
canvas = Canvas(root,width= 400, height= 300)
canvas.pack(fill= "both", expand=True)
# Display image
canvas.create_image(0, 0, image=bg, anchor="nw")
# Add a text in canvas
canvas.create_text(250,250,text="Good Morning!",
font=("Times New Roman", 24))
# Execute tkinter
root.mainloop()
Output of the above code:
Related Articles
Countdown clock and timer using Tkinter in PythonSimple Calculator Program in Python
Python gmplot to add google map on a web page
Python requests GET method
Python OpenCV ColorMap
Python 3 Tkinter Menu Bar
Python Tkinter Frame Widget
Python Tkinter Checkbutton Widget
Python Tkinter Combobox Event Binding
Python Tkinter Checkbutton Widget
Python Tkinter Combobox
Python Tkinter Text Widget
Entry Field Validation in Tkinter Python
Python Tkinter Scale Widget
Python Tkinter Overview and Examples
Python3 Tkinter Messagebox
Entry Field Validation in Tkinter Python
Python 3 Tkinter Menu Bar
Convert Python list to numpy array
Convert string to list Python
Python program to list even and odd numbers of a list
Python loop through list
Sort list in descending order Python