Hello again:

I seek assistance on what I believed would be an easy problem to solve, but, after much searching, I have not yet discovered a valid answer:

I have a canvas which consists of a background GIF upon which (when triggered) at least one new (smaller) GIF will appear, layered. I received help from someone here recently with that problem; it is set up to trigger the rendering of the smaller GIF upon the larger GIF background at this point-- I would like this image to appear as such upon a button click event (user input) This click event will act as the trigger for a 2D game I am writing. I do not need help with the game itself-- I am having trouble setting up the GUI, though.

I have been trying out many snippets and manipulating this code; I just need to learn how to bind a button such as "Play Now?" with the initialization of the game, the small GIF apearing on the larger, Canvas background. I need upon program call:

+ A display button and welcome message to render upon screen (have that already)

+ Bind this button input event (click) with the aforementioned large, GIF Canvas (Have this done, too) and when the button is clicked, a smaller GIF will appear upon the Canvas (layered on larger GIF), hence initializing the game from that point forward (all code beyond this initialization I have and is not relevant now)

Thank-you in advance for your kind, coding mentoring (it's getting put to good use) :cheesy:


(** Using TKinter in DrPython IDE)

10 Years
Discussion Span
Last Post by reRanger

I took the liberty to modify vegaseat's previous example code to show you how buttons would work:

from Tkinter import *

root = Tk()
root.title("Press Button!")

def show_image2():
    canvas1.create_image(x, y, image=photo2)

def show_image3():
    canvas1.create_image(x, y, image=photo3)

# pick three GIF image files you have in your working directory
# image1 is larger than image2 and image3
# create all three image objects now
image1 = "Red200x200.GIF"
photo1 = PhotoImage(file=image1)

image2 = "Green100x100.GIF"
photo2 = PhotoImage(file=image2)

image3 = "Blue100x100.GIF"
photo3 = PhotoImage(file=image3)

# make canvas the size of image1/photo1
width1 = photo1.width()
height1 = photo1.height()
canvas1 = Canvas(width=width1, height=height1)

# display photo1, x, y is center
x = (width1)/2.0
y = (height1)/2.0
canvas1.create_image(x, y, image=photo1)

# create two buttons to display smaller images
btn1 = Button(root, text="Image2", command=show_image2)
btn1. pack()
btn2 = Button(root, text="Image3", command=show_image3)
btn2. pack()


Thank-you for your reply-- this is very helpful. I am going to play around with this today and see what happens.

Appreciated much:cheesy:


This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.