python tkinter按钮未调用函数

python tkinter按钮未调用函数,python,tkinter,Python,Tkinter,这是我在这里的第一篇文章,所以要友善! 我用tkinter和python创建了一个小水族馆来掌握面向对象编程 我已经创建了一个fish类,并且正在用无限循环实例化和移动fish。我想能够点击一个按钮,让它增加一个数字1,这样我的循环将创建另一条鱼 我在调用的函数中插入了一个print语句来增加计数器,但它不打印 然后我尝试使用bind()函数,但也不起作用。 我找了又找,结果一无所获 这里是除了进口、鱼类类和一些变量之外的所有内容: window = Tk() def newFish():

这是我在这里的第一篇文章,所以要友善! 我用tkinter和python创建了一个小水族馆来掌握面向对象编程

我已经创建了一个fish类,并且正在用无限循环实例化和移动fish。我想能够点击一个按钮,让它增加一个数字1,这样我的循环将创建另一条鱼

我在调用的函数中插入了一个print语句来增加计数器,但它不打印

然后我尝试使用bind()函数,但也不起作用。 我找了又找,结果一无所获

这里是除了进口、鱼类类和一些变量之外的所有内容:

window = Tk()

def newFish():
    global desiredFish
    desiredFish += 1
    print(desiredFish)

window.title("Simple Aquarium")

tank = Canvas(window, height=500, width=1000, bg='blue')
tank.pack()
btn1 = Button(window, text="New Fish!", command=newFish())
btn1.pack()


while True:
    #dynamically create and name fish
    while fishCount < desiredFish:
        exec("fish%s = fish()" % str(fishCount))
    #dynamically reference fish
    for f in range(fishCount):
        exec("fish%s.move()" % str(f))
window=Tk()
def newFish():
全球渴望鱼
期望鱼+=1
印刷品(理想鱼)
窗口名称(“简单水族馆”)
坦克=帆布(窗户,高度=500,宽度=1000,背景为蓝色)
坦克包()
btn1=按钮(窗口,text=“newFish!”,command=newFish()
btn1.pack()
尽管如此:
#动态创建和命名鱼
当鱼数<期望鱼数时:
exec(“鱼%s=fish()%str(鱼数))
#动态参考鱼
对于范围内的f(鱼数):
exec(“鱼%s.move()%str(f))
非常感谢您的帮助,因为我有很多东西要学,而且在这个问题上已经浪费了太多时间!
谢谢

这是一个问题:

btn1 = Button(window, text="New Fish!", command=newFish())
命令
应设置为
newFish
函数本身,而不是它返回的(无)值:

btn1 = Button(window, text="New Fish!", command=newFish)

工作得很有魅力!谢谢