В Tkinter, как вы используете холст внутри определения? - PullRequest
0 голосов
/ 05 февраля 2019

В коде, который я недавно написал на python3.3, я пытаюсь создать фруктовую машину и нахожусь на ранних стадиях.Похоже, что как только я использую кнопку «Справка», «ianh.gif» не отображается.

from tkinter import *

def help(event):

   global ian
   Window=Tk()
   Window.geometry('200x70')
   Window.title('Need Help With Gambling addiction?')
   canvas = Canvas(Window, width = 300, height = 300)
   canvas.pack()
   ian = PhotoImage(file = 'Images/Ianh.gif')
   canvas.create_image(20,20, anchor=NW, image=img)
   Window.mainloop()

def start_game(event):
   Window=Tk()
   Window.geometry('200x70')
   Window.title('Fruit Machine')

Window=Tk()
Window.geometry('200x70')
Window.title('Main Menu')


canvas = Canvas(Window, width = 300, height = 300)
canvas.pack()
img = PhotoImage(file = 'Images/Cherries.gif')
canvas.create_image(20,20, anchor=NW, image=img)


L1=Label(Window, text="WELCOME TO THE FRUIT MACHINE")
L1.pack()
B1=Button(Window, text="Start")
B1.bind("<Button-1>",start_game)
B1.pack()
B2=Button(Window, text="Help")
B2.bind("<Button-1>",help)
B2.pack()




Window.mainloop()

Внутри определения «справки» PhotoImage и все команды холста не работают так, как должны.

1 Ответ

0 голосов
/ 05 февраля 2019

Это должно работать:

def help(event):
   global ian
   Window=Toplevel()
   Window.geometry('200x70')
   Window.title('Need Help With Gambling addiction?')
   canvas = Canvas(Window, width = 300, height = 300)
   canvas.pack()
   ian = PhotoImage(file = 'Images/Ianh.gif')
   canvas.create_image(20,20, anchor=NW, image=ian)

Несколько mainloop () не работают хорошо.

Если вам нужна дополнительная структура, посмотрите this .

...