В моей программе есть сложный расчет, который требует от пользователя оценки промежуточных результатов.Это хорошо работает в приложении командной строки (как сейчас выглядит мой код), потому что интерактивная подсказка останавливает выполнение программы до тех пор, пока пользователь не нажмет enter.Код командной строки выглядит примерно так:
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
Я хотел бы предоставить более интуитивно понятный интерфейс, чем это возможно с командной строкой, используя графический интерфейс пользователя и позволяя пользователю нажимать кнопку, указывающую их выборвместо того, чтобы вводить его. Я представляю что-то вроде этого:
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.
(Если это имеет значение, я использую Python и wxPython.)