Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 11, 2010 16:41:58

Nata
От:
Зарегистрирован: 2010-10-02
Сообщения: 87
Репутация: +  6  -
Профиль   Отправить e-mail  

event handling in wx

Добрый вечер. Такая задача: отгадать слово с 5ти попыток(каждый раз называть 1 букву, вводить букву в TextCtrl и нажимать после каждой буквы ‘Submit’, в текстовом поле должен появляться ответ ‘Yes’ или ‘No’ в зависимости от того, есть ли буква в слове)

submit=wx.Button(panel, label="Submit", pos=(245,207), size=(50,30))
self.Bind(wx.EVT_BUTTON, self.get_answer, submit)
self.user_input = wx.TextCtrl(panel, -1, "", pos=(140,207))
def get_answer(self, event):
self.interpreter.AppendText("\nShall we start? yes/no: ")

rep1=self.user_input.GetValue()
if rep1=="yes":
self.interpreter.AppendText("OK, Your guess? ")

for i in range(5):

guess=self.user_input.GetValue()
if guess in a_word:
self.interpreter.AppendText("Yes!")
else:
self.interpreter.AppendText("No!")

if rep1=="no":
self.interpreter.AppendText("OK, may be next time. Buy!")
результат:
Shall we start? yes/no: YES(user input)
The word contains 5 letters.
Your guess? No!No!No!No!No!
когда я ввожу ответ ‘yes’ программа использует его до самого конца вместо требуемой буквы, т.к. ‘yes’ не может быть в слове, она выдает “NO, NO NO ….”Как сделать так, чтобы после каждогo ввода программа ждала следующего, а не выполняла 5 оборотов с ‘yes’ вместо букв? я пробовала ‘self.user_input.SetValue(“”)’, не получается, тот же результат

заранее спасибо,
извините, вопрос, наверное глупый, но я учу wx всего 2ую неделю!



Отредактировано (Окт. 11, 2010 16:50:20)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version