Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2017, 17:46   #1
БалаШагаЛ
Форумчанин
 
Регистрация: 11.02.2011
Сообщений: 131
По умолчанию Tkinter.Canvas, вывод изображений: PhotoImage некорректно передаётся из функции в функцию

Здравствуйте. Я уже отчаялся что-то понять в своей проблеме. Пишу небольшое приложение на Tkinter, написал в одной из частей вывод изображения - не работает. Стал разбираться, вынес и загрузку и вывод изображения на самый верхний уровень, в main-файл - заработало.
Стал разбираться дальше, дошёл до того, что файл со следующим кодом нормально выводит изображение:

Код:
from Tkinter import *

root = Tk()

canvas = Canvas(root, width = 900, height = 600, background = "lightblue")

def get():
    return PhotoImage(file = "img.gif")

def draw(canvas, img):
    canvas.create_image(50, 50, image=img)

img = get()
draw(canvas, img)

canvas.pack(expand=YES, fill=BOTH)

root.mainloop()
а со следующим (различие - в том, где вызывается get) - вообще не выводит (почему - не могу понять; объект PhotoImage, кажется, создаётся со всеми теми же свойствами):

Код:
from Tkinter import *

root = Tk()

canvas = Canvas(root, width = 900, height = 600, background = "lightblue")

def get():
    return PhotoImage(file = "img.gif")

def draw(canvas):
    img = get()
    canvas.create_image(50, 50, image=img)

draw(canvas)

canvas.pack(expand=YES, fill=BOTH)

root.mainloop()
БалаШагаЛ вне форума Ответить с цитированием
Старый 23.11.2017, 01:03   #2
GwaSpb
 
Регистрация: 23.11.2017
Сообщений: 3
По умолчанию

мне кажется, причина в области существования переменной img
Вы создаёте img локально, а когда делаете canvas.pack img уже недоступна
GwaSpb вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DLE загрузка изображений через дополнительное поле если кто может помочь по настройке этого поля,,,а точнее вывод со значением ''Загружаемая галерея изображений'' которое на фото,, armn555 Фриланс 0 23.08.2017 10:15
public void someMethod() { this.run = false; Canvas canvas = null; doDraw(canvas); Tatana Java Мобильная разработка (Android) 10 15.12.2016 12:05
TreeView, Canvas, Вывод текста Kotaries Общие вопросы Delphi 1 18.07.2014 18:16
Тупая проблема - переменная не передаётся! delphicoding БД в Delphi 9 06.10.2011 14:26
вывод изображений dimonnnn PHP 3 14.08.2010 10:42