Variable Entry

Résolu/Fermé
willi_4185 Messages postés 41 Date d'inscription jeudi 26 septembre 2019 Statut Membre Dernière intervention 6 octobre 2022 - 28 janv. 2020 à 03:12
 trifou - 29 janv. 2020 à 11:45
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

yg_be Messages postés 23313 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 8 novembre 2024 Ambassadeur 1 552
28 janv. 2020 à 09:18
bonjour, peux-tu faire le tour des autres discussions que tu as ouvertes, et fermer celles qui ne sont plus actives?
0
willi_4185 Messages postés 41 Date d'inscription jeudi 26 septembre 2019 Statut Membre Dernière intervention 6 octobre 2022 3
28 janv. 2020 à 13:15
y'a po de soucis
0
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
0
willi_4185 Messages postés 41 Date d'inscription jeudi 26 septembre 2019 Statut Membre Dernière intervention 6 octobre 2022 3
29 janv. 2020 à 02:49
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())
0
trifou > willi_4185 Messages postés 41 Date d'inscription jeudi 26 septembre 2019 Statut Membre Dernière intervention 6 octobre 2022
29 janv. 2020 à 11:45
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()
0