дождитесь нажатия кнопки - PullRequest
0 голосов
/ 09 января 2012

У меня в основном есть вопросы, задаваемые в цикле for, и я пытаюсь заставить каждый вопрос ждать ответа (или кнопку, которую нужно нажать), прежде чем показывать следующий вопрос. Мне было интересно, как я могу это сделатьпотому что, как я сейчас его настроил, каждый вопрос будет появляться один за другим независимо от ответа ...

Ответы [ 2 ]

2 голосов
/ 09 января 2012

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

Один из способов сделать то, что вам нужно, это использовать gtk.Assistant с одним вопросом на страницу в объекте помощника и, возможно, одной последней страницей со сводкой результатов к вопросам на основе ожидаемые ответы.

2 голосов
/ 09 января 2012

Не помещайте это в цикл for, вам нужно показать следующий вопрос как реакцию на событие.

Я не работал с pygtk, но чтобы составить себе идею,если у вас было что-то вроде этого:

for question in questions:
    some_text_pane.set_text(question)
    #wait until button pressed

у вас должно быть что-то вроде этого:

question_pool = iter(questions)
def next_question(evt):
    question = next(question_pool)
    some_text_pane.set_text(question)

some_button.set_event_handler(next_question)

конечно, я не знаю GTK API, поэтому не берите методимена буквально.

...