等到按下按钮

时间:2012-01-09 15:41:55

标签: python pygtk

我基本上在for循环中询问了问题,并且在尝试显示下一个问题之前,我试图让每个问题等待响应(也就是点击按钮)。 我想知道如何完成这项工作,因为我现在设置的方式是每个问题都会一个接一个地出现,无论响应如何......

2 个答案:

答案 0 :(得分:2)

请勿将其置于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,所以不要从字面上理解方法名称。

答案 1 :(得分:2)

请注意,for循环不会让gtk主循环执行它的作业,并为您期望的事件调用回调方法,并且您的应用程序将无响应。

执行所需操作的一种方法是在助理对象中使用gtk.Assistant每页一个问题,并且最后一页可以根据预期的响应对问题的结果进行摘要。< / p>