gpt4 book ai didi

python - 显示存储在函数中的图像

转载 作者:太空宇宙 更新时间:2023-11-03 11:39:17 24 4
gpt4 key购买 nike

我正在开发一个 Python 程序,它可以让用户发现新喀里多尼亚的艺术作品(它是太平洋上的一个小法属岛屿 :))。

我尝试调用一个存储图像的函数。但经过几个小时的研究,我发现了这个 webpage描述我遇到的问题。发生的事情是 Python 将我的图像变成垃圾,因为我必须“保留对图像对象的额外引用。一个简单的方法是将图像分配给小部件属性。”我尝试这样做,但由于我是初学者,我真的不知道该怎么做。

这是我的脚本:

from tkinter import *

# Création de la fenêtre de menu
fenetre=Tk()
fenetre.title("ART'CAL")
Canevas=Canvas(fenetre, height=768,width=1346)
Canevas.pack()
# Insertion de l'image du menu
PhotoMenu = PhotoImage(file ='Diapositive1.gif')
Fond = Canevas.create_image(680, 350, image=PhotoMenu)

# Création de la fenêtre de règles du jeu
def Rules():
fenetre=Tk()
fenetre.title("Règles du jeu")
CanevasRules=Canvas(fenetre, height=768,width=1346)
CanevasRules.pack()
# Insertion de l'image des règles du jeu
PhotoRules = PhotoImage(file ='Diapositive2.gif')
Fond = CanevasRules.create_image(680, 350, anchor=CENTER, image=PhotoRules)
Suivant = Button(CanevasRules, text="Suivant")
Suivant.place(x=600, y=510)
Suivant.config(font=('Product Sans',20,'bold'))

# Création et personnalisaton du bouton "Découvrir"
Decouvrir = Button(Canevas, text="Découvrir")
Decouvrir.place(x=600, y=510)
Decouvrir.config(font=('Product Sans',20,'bold'), command=Rules)

fenetre.mainloop()

一切正常,直到我按下 DECOUVRIR(法语中的“发现”)。它不显示任何图像。任何人都可以帮助我并告诉我如何显示这张图片吗?

最佳答案

两个问题需要修改:首先,你不应该打开新的 Tkinter root (Tk()),为了打开一个新窗口使用 Toplevel。其次,为了“保存图像的副本”,只需将其指定为新窗口的属性即可。

希望这段修改后的代码对您有所帮助:

from tkinter import *

# Creation de la fenetre de menu
root=Tk()
root.title("ART'CAL")
Canevas=Canvas(root, height=768, width=1346)
Canevas.pack()
# Insertion de l'image du menu
PhotoMenu = PhotoImage(file ='Diapositive1.gif')
Fond = Canevas.create_image(680, 350, image=PhotoMenu)

# Creation de la fenetre de regles du jeu
def Rules():
fenetre=Toplevel(root) # open a new window using Toplevel
fenetre.title("Regles du jeu")
CanevasRules=Canvas(fenetre, height=768,width=1346)
CanevasRules.pack()
# Insertion de l'image des regles du jeu
PhotoRules = PhotoImage(file ='Diapositive2.gif')
Fond = CanevasRules.create_image(680, 350, anchor=CENTER, image=PhotoRules)
Suivant = Button(CanevasRules, text="Suivant")
Suivant.place(x=600, y=510)
Suivant.config(font=('Product Sans',20,'bold'))
fenetre.my_image = PhotoRules # saving a copy of the image

# Creation et personnalisaton du bouton "Decouvrir"
Decouvrir = Button(Canevas, text="Decouvrir")
Decouvrir.place(x=600, y=510)
Decouvrir.config(font=('Product Sans',20,'bold'), command=Rules)

root.mainloop()

关于python - 显示存储在函数中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52914575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com