Изображение Tkinter не отображается - PullRequest
0 голосов
/ 12 декабря 2018

Почему не работает следующий код:

root = Tk()

canvas = Canvas(root, width=1500, height=1500)


def createTank(x, y):
    tank = PhotoImage(file="Game/tank.gif")
    canvas.create_image(x, y, image=tank) 
    canvas.pack()

createTank(500, 500)
root.mainloop()

При запуске кода я просто получаю пустое окно tkinter.Почему это так?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

попробуйте этот код

from tkinter import *
root = Tk()

canvas = Canvas(root, width=1500, height=1500)
canvas.pack()
tank = PhotoImage(file="Game/tank.gif")

def createTank(x, y):
    canvas.create_image(x, y, image=tank)

createTank(500, 500)

root.mainloop()
0 голосов
/ 12 декабря 2018

Возможно, вы захотите вывести свой код из функции, так как он будет работать в глобальной области видимости.С помощью функции объект изображения может собираться мусором при выходе из функции, в результате чего метка будет выглядеть пустой.Существует простой обходной путь (сохраните постоянную ссылку на объект изображения), но смысл приведенного выше кода состоит в том, чтобы показать максимально простой код.

Попробуйте структурировать свой код следующим образом:

import Tkinter as tk

root = tk.Tk()
image = tk.PhotoImage(file="Game/tank.gif")
label = tk.Label(image=image)
label.pack()
root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...