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