Problème affichage image Tkinter
GameKnight
-
GameKnight -
GameKnight -
Bonjour,
Je suis actuellement sur un gros projet en programmation. Il s'agit d'un jeu en 2D de type rpg. J'avançais bien, mais depuis 3 jours, je me heurte à un problème déroutant. Cela fait bientôt 5 ans que je code en python, mais je dois avouer que ce problème est de loin le plus étrange auquel j'ai été confronté.
Mon programme est censé afficher la photo de profil du joueur dans la zone de customisation de personnage. Comme vous pouvez le voir dans le code ci-dessous, l'image correspondante est définie, puis passé en paramètre image dans un Label. Le label s'affiche bien, mais pas l'image. De plus, aucun message d'erreur n'est renvoyé.
J'ai fait beaucoup de test pour localiser l'origine du problème, et il semblerait qu'il vienne de la définition de l'image elle même. En effet, lorsque je rentre un chemin d'accès inexistant ou eroné, je n'ai aucun message d'erreur à l'ouverture du programme.
Voici donc l'extrait de mon code impliqué :
Voila voila. Merci d'avance pour votre aide !
Je suis actuellement sur un gros projet en programmation. Il s'agit d'un jeu en 2D de type rpg. J'avançais bien, mais depuis 3 jours, je me heurte à un problème déroutant. Cela fait bientôt 5 ans que je code en python, mais je dois avouer que ce problème est de loin le plus étrange auquel j'ai été confronté.
Mon programme est censé afficher la photo de profil du joueur dans la zone de customisation de personnage. Comme vous pouvez le voir dans le code ci-dessous, l'image correspondante est définie, puis passé en paramètre image dans un Label. Le label s'affiche bien, mais pas l'image. De plus, aucun message d'erreur n'est renvoyé.
J'ai fait beaucoup de test pour localiser l'origine du problème, et il semblerait qu'il vienne de la définition de l'image elle même. En effet, lorsque je rentre un chemin d'accès inexistant ou eroné, je n'ai aucun message d'erreur à l'ouverture du programme.
Voici donc l'extrait de mon code impliqué :
from Tkinter import * from functools import partial avt_dict = {} j1="Random" avt_dict[j1] = "Human2" #normalement, ces données sont dans des fichier de sauvegarde, et non prédéfinies dans le code comme dans cet exemple. gifsdict = {} game_window = Tk() game_window.title("Sword World") game_frame = Frame(game_window, bd=1, bg='black', relief='solid') game_frame.grid(column=0, row=0) def Interface_Personnage () : #Fonction d'affichage de l'interface de personnage global avt_dict, j1 game_frame.grid_forget() pers_frame.grid(column=0, row=0) if avt_dict[j1] == "BOT" : pht_profil_lbl1.grid(column=0, row=0, rowspan=3) elif avt_dict[j1] == "Human1" : pht_profil_lbl2.grid(column=0, row=0, rowspan=3) elif avt_dict[j1] == "HumanGirl1" : pht_profil_lbl3.grid(column=0, row=0, rowspan=3) elif avt_dict[j1] == "Human2" : pht_profil_lbl4.grid(column=0, row=0, rowspan=3) elif avt_dict[j1] == "HumanGirl2" : pht_profil_lbl5.grid(column=0, row=0, rowspan=3) elif avt_dict[j1] == "Ninja" : pht_profil_lbl6.grid(column=0, row=0, rowspan=3) elif avt_dict[j1] == "NinjaGirl" : pht_profil_lbl7.grid(column=0, row=0, rowspan=3) Menu1_Personnage_file="C:\Users\Administrateur\Desktop\Sword World\Images\Menus\Menu1-Personnage.gif" Menu1_Personnage_img = PhotoImage(file = Menu1_Personnage_file) gifsdict[Menu1_Personnage_file] = Menu1_Personnage_img pht_Menu1_Personnage = Button(game_frame, image=Menu1_Personnage_img, bg='black', command=partial(Interface_Personnage)) #cette image est affichée corectement pht_Menu1_Personnage.grid(column=0, row=0) pers_frame = Frame(game_window, bd=1, bg='black', relief='solid') pht_BOT_file="C:\Users\Administrateur\Desktop\Sword World\Images\Photo_Profil\Pht_Profil_Bot.gif" pht_BOT_img = PhotoImage(pht_BOT_file) gifsdict[pht_BOT_file] = pht_BOT_img pht_Human1_file="C:\Users\Administrateur\Desktop\Sword World\Images\Photo_Profil\Pht_Profil_Human1.gif" pht_Human1_img = PhotoImage(pht_Human1_file) gifsdict[pht_Human1_file] = pht_Human1_img pht_HumanGirl1_file="C:\Users\Administrateur\Desktop\Sword World\Images\Photo_Profil\Pht_Profil_HumanGirl1.gif" pht_HumanGirl1_img = PhotoImage(pht_HumanGirl1_file) gifsdict[pht_HumanGirl1_file] = pht_HumanGirl1_img pht_Human2_file="C:\Users\Administrateur\Desktop\Sword World\Images\Photo_Profil\Pht_Profil_Human2.gif" pht_Human2_img = PhotoImage(pht_Human2_file) gifsdict[pht_Human2_file] = pht_Human2_img pht_HumanGirl2_file="C:\Users\Administrateur\Desktop\Sword World\Images\Photo_Profil\Pht_Profil_HumanGirl2.gif" pht_HumanGirl2_img = PhotoImage(pht_HumanGirl2_file) gifsdict[pht_HumanGirl2_file] = pht_HumanGirl2_img pht_Ninja_file="C:\Users\Administrateur\Desktop\Sword World\Images\Photo_Profil\Pht_Profil_Ninja.gif" pht_Ninja_img = PhotoImage(pht_Ninja_file) gifsdict[pht_Ninja_file] = pht_Ninja_img pht_NinjaGirl_file="C:\Users\Administrateur\Desktop\Sword World\Images\Photo_Profil\Pht_Profil_NinjaGirl.gif" pht_NinjaGirl_img = PhotoImage(pht_NinjaGirl_file) gifsdict[pht_NinjaGirl_file] = pht_NinjaGirl_img pht_profil_lbl1 = Label(pers_frame, image=pht_BOT_img, bg='black') pht_profil_lbl2 = Label(pers_frame, image=pht_Human1_img, bg='black') pht_profil_lbl3 = Label(pers_frame, image=pht_HumanGirl1_img, bg='black') pht_profil_lbl4 = Label(pers_frame, image=pht_Human2_img, bg='black') pht_profil_lbl5 = Label(pers_frame, image=pht_HumanGirl2_img, bg='black') pht_profil_lbl6 = Label(pers_frame, image=pht_Ninja_img, bg='black') pht_profil_lbl7 = Label(pers_frame, image=pht_NinjaGirl_img, bg='black') game_window.mainloop()
Voila voila. Merci d'avance pour votre aide !
Configuration: Windows / Firefox 52.0
A voir également:
- Problème affichage image Tkinter
- Image iso - Guide
- Affichage double ecran - Guide
- Problème affichage fenêtre windows 10 - Guide
- Windows 11 affichage classique - Guide
- Acronis true image - Télécharger - Sauvegarde
4 réponses
Bonjour, il faut lui dire que c'est le file à lire, car c'est un paramètre nommé.
Pour le premier alors
À faire aussi pour tous les autres PhotoImage =)
Pour le premier alors
pht_BOT_img = PhotoImage(file=pht_BOT_file)
À faire aussi pour tous les autres PhotoImage =)
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, ton code n'utilise pas les images.