tkinter: созданное изображение не появляется - PullRequest
0 голосов
/ 16 мая 2018

Я работаю над созданием карточной игры на python.Я хотел бы создать функцию, которая отображает изображение в окне tkinter, но изображение не появляется.У меня есть все файлы изображений в нужном месте.

Вот мой код:

from tkinter import*

root = Tk()

pictures = ['1C kopiera.gif', '1D kopiera.gif', '1H kopiera.gif', '1S kopiera.gif',
            '2C kopiera. gif', '2D kopiera.gif', '2H kopiera.gif', '2S kopiera.gif',
            '3C kopiera.gif','3D kopiera.gif', '3H kopiera.gif', '3S kopiera.gif',
            '4C kopiera.gif', '4D kopiera.gif', '4H kopiera.gif', '4S kopiera.gif',
            '5C kopiera.gif', '5D kopiera.gif', '5H kopiera.gif', '5S kopiera.gif',
            '6C kopiera.gif', '6D kopiera.gif', '6H kopiera.gif', '6S kopiera.gif',
            '7C kopiera.gif', '7D kopiera.gif', '7H kopiera.gif', '7S kopiera.gif',
            '8C kopiera.gif', '8D kopiera.gif', '8H kopiera.gif', '8S kopiera.gif',
            '9C kopiera.gif', '9D kopiera.gif', '9H kopiera.gif', '9S kopiera.gif',
            '10C kopiera.gif', '10D kopiera.gif', '10H kopiera.gif',
            '10S kopiera.gif', '11C kopiera.gif', '11D kopiera.gif',
            '11S kopiera.gif', '11h kopiera.gif', '12C kopiera.gif',
            '12D kopiera.gif', '12H kopiera.gif', '12S kopiera.gif',
            '13C kopiera.gif', '13D kopiera.gif', '13H kopiera.gif',
            '13S kopiera.gif']

C = Canvas(root, width=1300, height=750, bg="dark green")
C.grid(column=0, row=1, columnspan=20)
root.title("Black Jack")

def create_image():
    gif = PhotoImage(file=""
                     + "/Users/ivanwahlund/PycharmProjects/yeboi/5C kopiera.gif")
    C.create_image(400, 350, image=gif)

create_image()
root.mainloop()

1 Ответ

0 голосов
/ 17 мая 2018

Ваш объект gif является локальной переменной.Сделайте это global , и изображение отобразится.

Обычно вам следует сохранить ссылку на изображение.

from tkinter import*

root = Tk()

pictures =['1C kopiera.gif', '1D kopiera.gif', '1H kopiera.gif', '1S kopiera.gif', '2C kopiera. gif', '2D kopiera.gif', '2H kopiera.gif', '2S kopiera.gif', '3C kopiera.gif','3D kopiera.gif', '3H kopiera.gif', '3S kopiera.gif', '4C kopiera.gif', '4D kopiera.gif', '4H kopiera.gif', '4S kopiera.gif', '5C kopiera.gif', '5D kopiera.gif', '5H kopiera.gif', '5S kopiera.gif', '6C kopiera.gif', '6D kopiera.gif', '6H kopiera.gif', '6S kopiera.gif', '7C kopiera.gif', '7D kopiera.gif', '7H kopiera.gif', '7S kopiera.gif', '8C kopiera.gif', '8D kopiera.gif', '8H kopiera.gif', '8S kopiera.gif', '9C kopiera.gif', '9D kopiera.gif', '9H kopiera.gif', '9S kopiera.gif','10C kopiera.gif', '10D kopiera.gif', '10H kopiera.gif', '10S kopiera.gif', '11C kopiera.gif', '11D kopiera.gif', '11S kopiera.gif', '11h kopiera.gif', '12C kopiera.gif', '12D kopiera.gif', '12H kopiera.gif', '12S kopiera.gif', '13C kopiera.gif', '13D kopiera.gif', '13H kopiera.gif', '13S kopiera.gif']



C = Canvas(root, width=1300, height=750, bg="dark green")

C.grid(column=0, row=1, columnspan=20)
root.title("Black Jack")

def create_image():
    global gif    # make it global else out of scope
    gif = PhotoImage(file="earth.gif")
    C.create_image(400, 350, image=gif)
    C.grid(column=0, row=1, columnspan=20)

create_image()
root.mainloop()
...