#python #python-3.x #tkinter
#python #python-3.x #tkinter
Вопрос:
def func_checkprice():
try:
global product_link
product_link = link.get()
page =requests.get(product_link)
soup = BeautifulSoup(page.content, 'html.parser')
product_name = soup.find(class_='_35KyD6').get_text()
price = soup.find(class_='_1vC4OE _3qQ9m1').get_text()
print(product_name ,price, ctime())
product_window = Tk()
product_window.geometry("200x200")
back_img1 = ImageTk.PhotoImage(Image.open("388275.jpg"))
back_label1 = Label(product_window, image=back_img1)
back_label1.place(x=0, y=0, relheight=1, relwidth=1)
details_name = Label(product_window , text=product_name, wraplength=120)
details_price = Label(product_window , text=price, wraplength=120)
details_name.grid(row=0,column=0)
details_price.grid(row=0,column=1)
okay_button = Button(product_window, text="Okay", command=product_window.destroy)
okay_button.grid(row=1, column=0, columnspan=2, ipadx=10, pady=5)
link.delete(0,END)
except:
popup = messagebox.showerror("Error","Invalid Link")
Фоновый код отлично работает для корневого окна. Этот product_window открывается, когда я нажимаю на кнопку в корневом окне. Я просто не могу добавить фон в новое окно, перепробовал все, что мог.
Комментарии:
1.
back_img1
собирается мусор (да, даже если он используется в ярлыке). Вы должны сохранить другую ссылку на него.2. извините, что? Не понял вас.
Ответ №1:
Либо скажите global back_img1
поверх вашей функции, чтобы сохранить ссылку, либо вы также можете сказать back_label1.image=back_img1
. Это предотвратит сборку изображения pythons сборщиком мусора.
И я предполагаю, что ваше product_window
первое окно (родительское) в вашей программе, поскольку вам не разрешено использовать более одного экземпляра Tk()
, если это не главное окно вашей программы, замените Tk()
на Toplevel()
, поскольку они используются для ссылки дочерних окон на родительское Tk()
окно. Если существует более одного экземпляра Tk()
, вы получите сообщение об ошибке, которое pyimagex does not exist
Надеюсь, это развеяло ваши сомнения.
Приветствия