【发布时间】:2010-10-19 12:45:07
【问题描述】:
在我的程序中有一个复杂的计算,需要用户评估中间结果。这在命令行应用程序(这就是我的代码现在的样子)中效果很好,因为交互式提示会暂停程序执行,直到用户按下回车键。命令行代码如下所示:
def calculate(starting):
result1 = initial_calculation(starting)
user_input1 = input("What is your choice for " + result1 + "?")
result2 = calculate1(user_input1)
user_input2 = input("What is your choice for " + result2 + "?")
result2 = calculate2(user_input2)
#...etc
我想提供一个比命令行更直观的界面,方法是使用 GUI 并允许用户单击指示他们选择的按钮而不是输入它。我正在描绘这样的画面:
def do_something(starting):
result1 = initial_calculation(starting)
#wait for user to press a button indicating their choice?
result2 = calculate1(clicked_button.user_input1)
label.text("What is your choice for " + result1 + "?")
#wait for user again
result2 = calculate2(clicked_button.user_input2)
#...etc
有没有一种方法可以暂停执行计算的程序代码,然后在用户单击按钮后恢复代码?我不太确定如何在这里引发或处理事件,因为通常在 GUI 中,控制回调是代码执行的起点,但在这里,代码从其他地方开始,需要屈服于 GUI 并从 GUI 恢复。
(如果有什么不同,我使用的是 Python 和 wxPython。)
【问题讨论】:
标签: user-interface design-patterns language-agnostic