Создание графического интерфейса калькулятора в Python аналогично MS Calculator - PullRequest
1 голос
/ 15 февраля 2010

Мне нужно написать код, который работает аналогично обычным калькуляторам таким образом, чтобы он отображал первое набранное число, когда я нажимаю операнд, виджет ввода по-прежнему отображает первое число, но когда я нажимаю цифры для моего второго номера первый заменяется. Я пока не собираюсь писать весь код, но застрял в том моменте, когда, когда я нажимаю 2-е число, первый набор заменяется. Я думал о том, что если key == один из операндов, то сначала я устанавливаю num в записи как переменную, затем я делаю ent.delete (0, end), чтобы очистить экран, и ent.insert (сначала 0) отобразить первый номер в виджете записи. Теперь я не знаю, что делать, чтобы очистить виджет ввода при нажатии на 2-й номер (а).

1 Ответ

2 голосов
/ 15 февраля 2010

Здесь вам нужна концепция государства. Каждый раз, когда нажимается клавиша, вы проверяете состояние и определяете, какое действие предпринять.

В исходном состоянии вы берете цифры.

При нажатии кнопки операнда вы сохраняете операнд и меняете его состояние.

Когда нажимается другой номер, вы сохраняете номер, сбрасываете цифровой ввод и снова начинаете ввод номера.

Затем, когда нажимается кнопка равенства, вы выполняете операцию, используя свой сохраненный номер и операнд с текущим числом в числовом вводе.

Обратите внимание, что в динамическом языке, таком как Python, вместо использования переменной и операторов if для проверки состояния можно просто изменить функцию, которая обрабатывает нажатие клавиши / кнопки, в зависимости от состояния.

...