Variable Entry [Résolu]

Signaler
Messages postés
25
Date d'inscription
jeudi 26 septembre 2019
Statut
Membre
Dernière intervention
2 août 2020
-
 trifou -
Bonjour, alors voilà, je fais un wallet qui permet de calculer son "argent" et j'aimerais que l'utilisateur puisse entrer un montant (rps dans mon code) en utilisant le Entry de Tkinter
pour cela il me faut donc récupérer cette même variable. J'ai beau essayer le .get() je n'y arrive toujours pas

Voilà mon code en entier :
# Coding by Willipro123
import tkinter
from tkinter import Label, Menu, Tk


# coding:utf-8


# Ici ont viens définir les fonctions principal de notre programme qui nous
# permettront de faire les principaux calcul soit : wallet (Portefeuille) et rps (Donnée entrée par l'utilisateur)

def rps():
    rps = 0

    if __name__ == '__rps__':
        main()


def wallet():
    wallet = 5000

    if __name__ == '__wallet__':
        main()


# Tous les def pour les fonctions
# Options à propos
def propos():
    propos = tkinter.Toplevel(app)
    propos.geometry("240x112")
    propos.title("À propos")
    lb = tkinter.Label(propos, text="""Bienvenue sur mon logiciel de calcul, 
afin que vous puissiez gérer votre argent
Vous pouvez utiliser ce logiciel à des 
fin commerciale, Pour cela il suffit 
de référer la source utiliser 

By William""")
    lb.pack()
    if __name__ == '__propos__':
        main()



def wallet_Menu():
    wallet_Menu = tkinter.Toplevel(app)
    wallet_Menu.geometry("240x72")
    wallet_Menu.title("Wallet_Menu")

    if __name__=='__Wallet_Menu__':
        main()






# retrait
def retrait():
    retrait = tkinter.Toplevel(app)
    retrait.geometry("240x92")
    retrait.title("Retrait")
    lb = tkinter.Label(retrait, text="Entrez le montant que vous souhaitez retirer : ")
    rps = tkinter.Entry(retrait, width=24)
    rps.get()
    rps.pack()
    lb.pack()
    if __name__ == '__retrait__':
        main()


# virement

def virement():
    virement = tkinter.Toplevel(app)
    virement.geometry("240x72")
    virement.title("Virement")
    lb = tkinter.Label(virement, text="Entrez le montant que vous souhaitez virer : ")
    rps = tkinter.Entry(virement, width=24)
    rps.pack()
    lb.pack()
    if __name__ == '__virement__':
        main()


# Ici on vas définir notre fenêtre et les principaux widget :
app = tkinter.Tk()
app.title("Wallet Menu")
mainmenu: Menu = tkinter.Menu(app)
# Ici on vas définir la grandeur de notre fenêtre afin de s'assurer quelle soit bien
# centré par rapport a l'écran

screen_x = int(app.winfo_screenwidth())
screen_y = int(app.winfo_screenheight())
window_x = 480
window_y = 240

posX = (screen_x // 2) - (window_x // 2)
posY = (screen_y // 2) - (window_y // 2)

geo = "{}x{}+{}+{}".format(window_x, window_y, posX, posY)
app.geometry(geo)

# Preminer Menu


first_menu = tkinter.Menu(mainmenu, tearoff=0)
first_menu.add_command(label="Wallet", command=wallet_Menu)
first_menu.add_separator()
first_menu.add_command(label="Virement", command=virement)
first_menu.add_command(label="Retrait", command=retrait)
first_menu.add_separator()
first_menu.add_command(label="Quitter", command=app.quit)

# Second Menu


second_menu = tkinter.Menu(mainmenu, tearoff=0)
second_menu.add_command(label="À propos", command=propos)
second_menu.add_separator()

mainmenu.add_cascade(label="Wallet Option", menu=first_menu)
mainmenu.add_cascade(label="Option", menu=second_menu)

# boucle princiaple

app.config(menu=mainmenu)
app.mainloop()

2 réponses

Messages postés
12865
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
30 octobre 2020
717
bonjour, peux-tu faire le tour des autres discussions que tu as ouvertes, et fermer celles qui ne sont plus actives?
Messages postés
25
Date d'inscription
jeudi 26 septembre 2019
Statut
Membre
Dernière intervention
2 août 2020
2
y'a po de soucis
Bonjour,

Bis repetita: Les
if __name__==
ne servent à rien.

Faire
rps.get()
, c'est bien joli, mais à ton avis :
  • Est-ce logique de ne pas affecter la valeur d'Entry (via get) à une autre variable de ton programme ?
  • Est-ce logique de récupérer cette valeur directement après la création du widget, donc sans que l'utilisateur n'ait saisi quoi que ce soit ?


Lorsqu'on commence à programmer avec une interface graphique, fonctions et portées des variables sont des choses que l'on est censé avoir comprises.

Entry possède un paramètre textvariable qui comme son nom l'indique permet de passer une variable tkinter.

http://effbot.org/tkinterbook/variable.htm
http://effbot.org/tkinterbook/entry.htm
Messages postés
25
Date d'inscription
jeudi 26 septembre 2019
Statut
Membre
Dernière intervention
2 août 2020
2
Merci, je viens en effet de commencer le python et j'avoue ne pas comprendre tous les paramètre possible de ce langage
pour le .get() faut-il mettre la var dans la fonction ? et/ou puis-je définir avec le .get() une fonction ?

Un truc qui ressemble a cela :

rps.get(spr)

def spr(rps.get())
>
Messages postés
25
Date d'inscription
jeudi 26 septembre 2019
Statut
Membre
Dernière intervention
2 août 2020

Utilise une variable tkinter pour ton Entry comme montré dans le lien que je t'ai donné.

import tkinter as tk

def retrait():
    retrait = tk.Toplevel(app)
    retrait.geometry("240x92")
    retrait.title("Retrait")
    lb = tk.Label(retrait, text="Entrez le montant que vous souhaitez retirer : ")
    rps = tk.Entry(retrait, textvariable=var_retrait, width=24)
    rps.focus_set()
    rps.pack()
    lb.pack()


app = tk.Tk()
var_retrait = tk.IntVar()
tk.Button(app, text="retrait", command=retrait).pack()
tk.Button(app, text="voir montant retrait", command=lambda: print(var_retrait.get())).pack()

app.mainloop()