Найти - Пользователи
Полная версия: Вывод картинки в окно(tkinter) через диалог открытия файла
Начало » Python для новичков » Вывод картинки в окно(tkinter) через диалог открытия файла
1
junga_py
Здравствуйте. Написал программу, которая должна выводить картинку из файла в главное окно. Выбор файла происходит в диалоговом окне. Но когда запускаю программу и выбираю файл, картинка не выводится, хотя границы главного окна раздвигаются в соответствии с размерами картинки. Как все-таки вывести изображение, сохраненное в файле?

from tkinter import *               
from tkinter.filedialog import *     
from PIL import Image, ImageTk
import fileinput
# обработчик события выбора пункта меню "Открыть файл"
def openfile():    
    op = askopenfilename(initialdir = "D:\\Фонетика") # окно выбора файла
    image = Image.open(op)  # создать объект для работы с изображением
    print(image.size)
    label = Label(root, image = ImageTk.PhotoImage(image)) # создать объект для вывода картинки
    label.pack(expand = "yes", fill = "both", side = "left") # нарисовать надпись с картинкой
root = Tk()        # создать окно верхнего уровня приложения 
m = Menu(root) # создать объект Меню в главном окне
root.config(menu=m) #сконфигурировать окно с указанием меню
 
fm = Menu(m)   #создать пункт Меню с размещением в основном Меню (m)
m.add_cascade(label="Файл",    menu=fm)                        # пункт располагается в основном меню (m)
fm.add_command(label="Открыть", command=openfile)     # формируется команда открытия файла
fm.add_command(label="Закрыть",    command=root.destroy) # формируется команда выхода
root.mainloop() # цикл обработки сообщений
py.user.next
Попробуй вывести картинку, передав путь напрямую, без диалога. Если выведется, то смотри, что возвращает диалог (через print() ).
4kpt_IV
Image должен быть или глобальным или явно передаваться.
junga_py
Спасибо! Получилось . Потом уже в руководстве к классу PhotoImage нашел похожие указания, но там еще как вариант предлагают передавать объект Image, как атрибут другого объекта:
You must keep a reference to the image object in your Python program, either by storing it in a global variable, or by attaching it to another object.
4kpt_IV
junga_py
или явно передаваться

junga_py
но там еще как вариант предлагают передавать объект Image, как атрибут другого объекта

Не понял шутки…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB