停止Python程序,直到用户执行操作

停止Python程序,直到用户执行操作,python,gtk,Python,Gtk,我的原始程序使用了输入,如下所示: n = input("Enter your favorite number: ") # do stuff with number 现在,我已经切换到GTK GUI,但仍然希望实现相同的功能。现在看看这段非常相似的代码: n = myWindow.getNumber() # do stuff with number 是否可以编写一个getNumber()方法,该方法仅在用户按下窗口中的提交按钮后返回?(如输入功能的工作原理)或者这是我唯一的选择: def c

我的原始程序使用了
输入
,如下所示:

n = input("Enter your favorite number: ")
# do stuff with number
现在,我已经切换到GTK GUI,但仍然希望实现相同的功能。现在看看这段非常相似的代码:

n = myWindow.getNumber()
# do stuff with number
是否可以编写一个
getNumber()
方法,该方法仅在用户按下窗口中的提交按钮后返回?(如
输入
功能的工作原理)或者这是我唯一的选择:

def callback(widget, event):
    n = myWindow.inputWidget.getValue()
    # do stuff with number

n = myWindow.getNumber(callback)

更新:我希望在没有gtk.对话框的情况下完成此操作,因为我不希望每次需要用户输入时都弹出对话框。

您需要的是一个模式对话框。我根本不知道GTK(或PyGTK),但似乎有一个例子。

谢谢,但模式对话框只是阻止用户与对话框外的任何小部件进行交互。@Sam:据我所知,GTK.dialog的run方法会阻止程序,并且只在收到响应时返回(无需回调)。子类化gtk.Dialog可能是您所需要的。