Erreur .set (tkinter)

Fermé
Akyso - 19 juin 2019 à 17:01
Akyso Messages postés 1 Date d'inscription mercredi 19 juin 2019 Statut Membre Dernière intervention 21 juin 2019 - 21 juin 2019 à 10:32
Bonjour, bonsoir.

Je me suis mis récemment à python et j'ai voulu commencer mon 1er projet en faisant un jeu, un peu comme le juste prix. (Prix choisi aléatoire et c'est au joueur de le trouver). Le problème est j'ai plusieurs messages d'erreurs dont je n'arrive pas à régler. Voici les erreurs:
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Akyso\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "B:\test code python\Script.py", line 13, in retrieve_input__good_price
    position_price.set("Le prix est plus bas.")
AttributeError: 'Label' object has no attribute 'set'


Et voici mon code :
from tkinter import *
from random import randint
 
 
def retrieve_input__good_price ():
    global just_price
    input_value = input_nombre.get ()
    input_value =  int(input_value)
    if input_value != just_price :
        if input_value  > just_price :
            position_price.set("Le prix est plus haut.")
        else:
            position_price.set("Le prix est plus bas.")
    else:
        position_price.set("Vous avez le bon prix, félicitations !")
    print(position_price)
 
 
 
#Création fenetre
window = Tk()
window.title("Le juste prix")
window.geometry ("1080x720")
window.minsize(720, 480)
window.iconbitmap("image/Logo_juste_prix.ico")
window.config(bg="#38A4CC")
 
#Génération du nombre aléatoire
just_price = randint(1,1000)
just_price = int(just_price)
#Titre
title = Label(window,bg="#38A4CC", font=("Arial", 40), text="Le juste prix !",fg="white")
title.pack(pady=40)
 
#Conteneur
frame = Frame (window, background="#38A4CC")
 
#Sous conteneur texte
sub_frame = Frame(frame,bg="#38A4CC")
sub_frame.grid(row=0, column=0, sticky=W)
 
#Titre du conteneur
sub_title = Label (sub_frame, text="Entrez un nombre entre 1 et 1000. ", bg="#38A4CC",font=("Arial", 25),fg="white")
sub_title.pack()
 
#Zone d'entré/input
input_nombre = Entry (sub_frame,bg="#38A4CC",font=("Arial", 20),fg="white")
input_nombre.pack(pady=20, fill=X)
 
#Position par rapport au prix
position_price = StringVar()
position_price.set("Donnez un nombre avant de savoir si vous avez gagnez")
position_price = Label(sub_frame,bg="#38A4CC", font=("Arial", 15), textvariable=position_price,fg="white")
position_price.pack(pady=10)
 
#Bouton validé
button = Button (sub_frame, text="Valider", font=("Arial", 25),fg="#38A4CC",bg="white",command=retrieve_input__good_price)
button.pack(pady=20, fill=X)
 
#Image
width = 500
height = 464
image = PhotoImage(file="image/Logo_juste_prix.png")
canvas = Canvas(frame,bg="#38A4CC",width=width,height=height,bd=0,highlightthickness=0)
canvas.create_image(width/2,height/2,image=image)
canvas.grid(row=0, column=1, sticky=W)
 
 
 
 
 
frame.pack(expand=YES)
 
window.mainloop()


Si vous avez une idée de comment les résoudre, je suis preneur et si en plus vous pouvez m'expliquer pourquoi cela serait génial.

Merci d'avance et cordialement Akyso

1 réponse

Akyso Messages postés 1 Date d'inscription mercredi 19 juin 2019 Statut Membre Dernière intervention 21 juin 2019
21 juin 2019 à 10:32
Bon j'ai réussi à le faire fonctionner , voici comment j'ai fait :

position_price = StringVar("")
position_pricet = StringVar("")
position_pricet.set("Donnez un nombre avant de savoir si vous avez gagnez")
position_price = position_pricet
position_pricet = Label(sub_frame,bg="#38A4CC", font=("Arial", 15), textvariable=position_pricet,fg="white")
position_pricet.pack(pady=10)


Pour résumer, je voulais changer un Label au lieu de ma variable donc j'en ai créer une intermédiaire.
0