Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 15.11.2017, 18:46   #1
БалаШагаЛ
Форумчанин
 
Регистрация: 11.02.2011
Адрес: Донецк
Сообщений: 131
Репутация: 16

skype: balashagal
По умолчанию 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, 02:03   #2
GwaSpb
Новичок
 
Регистрация: 23.11.2017
Сообщений: 3
Репутация: 10
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DLE загрузка изображений через дополнительное поле если кто может помочь по настройке этого поля,,,а точнее вывод со значением ''Загружаемая галерея изображений'' которое на фото,, armn555 Фриланс 0 23.08.2017 11:15
public void someMethod() { this.run = false; Canvas canvas = null; doDraw(canvas); Tatana Java Мобильная разработка (Android) 10 15.12.2016 13: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


21:53.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru