2010-02-15 7 views
1

Je dois écrire un code qui fonctionne comme les calculatrices normales de telle sorte qu'il affiche le premier chiffre que je tape, quand j'appuie sur l'opérande, le widget d'entrée affiche toujours le premier nombre, mais quand j'appuie sur les chiffres pour mon deuxième numéro, le premier est remplacé. Je ne suis pas au point d'écrire tout le code pour le moment, mais je suis bloqué au point où quand j'appuie sur le (s) second (s) numéro (s), le premier ensemble est remplacé. Je pensais à if key == un des opérandes, que je place le num sur l'entrée en tant que variable d'abord, alors je ent.delete (0, fin) pour effacer l'écran et ent.insert (0, premier) à affiche le premier num dans le widget d'entrée. Maintenant, je ne sais pas quoi faire pour effacer le widget d'entrée lorsque le 2e nombre (s) est pressé.Création d'une calculatrice GUI en python similaire à MS Calculator

+0

êtes-vous autorisé à utiliser PyQT ou wxPython? – dassouki

Répondre

2

Ce dont vous avez besoin ici est un concept d'état. Chaque fois qu'une touche est pressée, vous vérifiez l'état et déterminez quelle action prendre.

Dans l'état initial, vous saisissez des nombres.

Lorsqu'un bouton d'opérande est enfoncé, vous stockez l'opérande et modifiez l'état.

Lorsqu'un autre numéro est enfoncé, vous enregistrez le numéro, effacez l'entrée numérique et recommencez l'entrée numérique.

Puis, lorsque vous appuyez sur le bouton égal, vous effectuez l'opération en utilisant le numéro enregistré et l'opérande avec le numéro actuel dans l'entrée numérique. Notez qu'avec un langage dynamique comme Python, au lieu d'utiliser une variable et si des instructions pour vérifier l'état, vous pouvez juste changer la fonction qui gère la touche/bouton enfoncé selon ce que l'état est.