from tkinter import *
from PIL import ImageTk
def show():
path = r'P:\Greece Slideshow\01001-MJR_20240511_5110080-Edit.jpg'
pimg = ImageTk.PhotoImage(file=path)
image_label.configure(image=pimg)
root.pimg = pimg # prevent garbage collection
root = Tk()
window2 = Tk()
# image_label = Label(root) # works if label is in main window
image_label = Label(window2) # fails if label is in secondary window
# message is "_tkinter.TclError: image "pyimage1" doesn't exist"
image_label.pack()
root.after(500, show)
root.mainloop()
На что следует обратить внимание:
Код работает, если метка находится в главном окне, но не в том случае, если она во вторичном окне.
Как показано, я назначил PhotoImage для root.pimg, чтобы он не собирался мусором. Я пробовал множество вариантов этого (например, глобальную переменную, свойство других постоянных объектов), но ничего не помогает.
Я пробовал Canvas вместо метки, но получаю точно такое же сообщение об ошибке.
Есть идеи? Кто-нибудь успешно поместил изображение во дополнительное окно в Python? Мне не нужно использовать PIL; что угодно сделает меня счастливым. Ненавижу опускаться до уровня Win32 API (убивает переносимость), но я собираюсь это сделать.
Эта проблема — одна из многих, описанных здесь, где возникает ошибка, поскольку изображение, созданное PhotoImage, не существует. Рассмотрим этот код: [code]from tkinter import * from PIL import ImageTk
# image_label = Label(root) # works if label is in main window image_label = Label(window2) # fails if label is in secondary window # message is "_tkinter.TclError: image "pyimage1" doesn't exist" image_label.pack()
root.after(500, show)
root.mainloop() [/code] На что следует обратить внимание: [list] [*]Код работает, если метка находится в главном окне, но не в том случае, если она во вторичном окне. [*]Как показано, я назначил PhotoImage для root.pimg, чтобы он не собирался мусором. Я пробовал множество вариантов этого (например, глобальную переменную, свойство других постоянных объектов), но ничего не помогает. [*]Я пробовал Canvas вместо метки, но получаю точно такое же сообщение об ошибке. [/list] Есть идеи? Кто-нибудь успешно поместил изображение во дополнительное окно в Python? Мне не нужно использовать PIL; что угодно сделает меня счастливым. Ненавижу опускаться до уровня Win32 API (убивает переносимость), но я собираюсь это сделать.
Я хочу применить другое форматирование только к одной метке столбца в метках столбца matplotlib.
Пример кода
import pandas as pd
import seaborn as sns
sns.set_style('white')
s = pd.Series({'John': 10000, 'Amy': 5000, 'Elizabeth': 2000, 'James':...
У меня есть устройство с двумя дисплеями. Я хочу запустить два разных приложения, по одному для каждого дисплея.
По умолчанию отображает содержимое. Я немного заглянул в диспетчер дисплеев и запустил занятие на втором дисплее, но я сталкиваюсь с...
Я пытаюсь отобразить (в качестве приложения системного уровня) несколько действий. Есть скрытый класс AOSP под названием ActivityView , предназначенный для этого. Вот как вы бы его использовали, насколько я понимаю:...
У меня есть устройство с двумя дисплеями. Я хочу запустить два разных приложения, по одному для каждого дисплея.
По умолчанию отображает содержимое. Я немного заглянул в диспетчер дисплеев и запустил занятие на втором дисплее, но я сталкиваюсь с...
Это последующий вопрос от вызова imageetk.photoimage () в потоке, вызывая тупик
Я до сих пор исправил проблему тупика после дизайна в принятом ответе. Теперь я работаю над отзывчивым пользовательским интерфейсом, который позволяет пользователю...