如何让海龟程序在 运行 之前等待来自用户的 event/response?

How can I make the turtle program wait for an event/response from user before running?

我正在尝试使用 tkinter 模块为我创建的迷你游戏获取投注输入。但是,每当我 运行 程序时,tkinter 和 turtle 模块都会 运行 同步。我怎样才能让 turtle 模块代码可以等到用户按下 tkinter 入口小部件中的按钮?

import random
import turtle
from tkinter import *



Bank_account = 0


def enter_input():

    global turtle_bet
    global bet_amount

    turtle_bet = user_turtle_bet.get()
    bet_amount = user_bet_amount.get()

    return turtle_bet, bet_amount
    
    


## Tkinter Entry Setup
tk = Tk()

user_turtle_bet = StringVar()
user_bet_amount = StringVar()

user_turtle_label = Label(tk, text="Turtle Bet", font=('Times', 13, 'bold'))
user_turtle_entry = Entry(tk, textvariable=user_turtle_bet, font=('Times', 13, 'normal'))

user_amount_label = Label(tk, text="Bet Amount", font=('Times', 13, 'bold'))
user_amount_entry = Entry(tk, textvariable=user_bet_amount, font=('Times', 13, 'normal'))

enter_button = Button(tk, text="ENTER", command=enter_input)

user_turtle_label.grid(row=0, column=0)
user_turtle_entry.grid(row=0, column=1)
user_amount_label.grid(row=1, column=0)
user_amount_entry.grid(row=1, column=1)
enter_button.grid(row=2, column=1)


## Turtle Game Setup
turtle.screensize(canvwidth=500, canvheight=500, bg="pink")
t = turtle.Pen()
s = turtle.Pen()

t.forward(50)
s.left(90)
s.forward(50)

正如 Matiiss 所说,将 turtle 代码放在一个函数中,然后在用户交互时调用该函数。 顺便说一句,如果您要返回 turtle_bet 和 bet_amount 的值,我怀疑将它们声明为全局变量是不必要的。

import turtle
from tkinter import *

Bank_account = 0


def turtle_stuff():
    ## Turtle Game Setup
    turtle.screensize(canvwidth=500, canvheight=500, bg="pink")
    t = turtle.Pen()
    s = turtle.Pen()

    t.forward(50)
    s.left(90)
    s.forward(50)



def enter_input():
    global turtle_bet # probably not necessary
    global bet_amount # probably not necessary

    turtle_bet = user_turtle_bet.get()
    bet_amount = user_bet_amount.get()
    turtle_stuff() # trigger the turtle code
    return turtle_bet, bet_amount


## Tkinter Entry Setup
tk = Tk()

user_turtle_bet = StringVar()
user_bet_amount = StringVar()

user_turtle_label = Label(tk, text="Turtle Bet", font=('Times', 13, 'bold'))
user_turtle_entry = Entry(tk, textvariable=user_turtle_bet, font=('Times', 13, 'normal'))

user_amount_label = Label(tk, text="Bet Amount", font=('Times', 13, 'bold'))
user_amount_entry = Entry(tk, textvariable=user_bet_amount, font=('Times', 13, 'normal'))

enter_button = Button(tk, text="ENTER", command=enter_input)

user_turtle_label.grid(row=0, column=0)
user_turtle_entry.grid(row=0, column=1)
user_amount_label.grid(row=1, column=0)
user_amount_entry.grid(row=1, column=1)
enter_button.grid(row=2, column=1)
tk.mainloop()