Python tkinter按钮没有响应

时间:2017-07-04 14:46:33

标签: python python-3.x tkinter turtle-graphics

TKINTER GRAPHICS

from tkinter import *

tk = Tk()

btn = Button(tk, text="Click Me") #Makes a useless button

btn.pack() #Shows the button

import turtle #Makes the graphics work

t = turtle.Pen() 

def hello(): #Makes button not 
print('hello here')

btn = Button(tk, text="Click Me", command=hello)

当我点击按钮时,程序应该说hello there,但我无法点击按钮,因为它不会响应。

1 个答案:

答案 0 :(得分:0)

如评论中所述,您似乎创建了两次相同的按钮,一次是 未连接 到一个功能,但是 打包 ,一旦 连接 到一个功能但 未打包 。如果你把两者结合起来,你就会得到一个工作按钮。

但是让我们在开始之前跳进去修复另一个问题 - 你调用了:

t = turtle.Pen()

不,当你在 tkinter 中工作时。如果您正在使用独立龟,它是Turtle / Pen和Screen,但如果您在tkinter中工作,则它是RawTurtle / RawPen和TurtleScreen。否则你最终会得到额外的窗口和潜在的根冲突。

将上述所有内容组合在一起,为要播放的乌龟添加滚动画布,并将print()更改为控制台,使其成为滚动画布的turtle.write(),我们得到:

import tkinter as tk
import turtle # Makes the graphics work

def hello():  # Makes button not
    turtle.write('hello there', align='center', font=('Arial', 18, 'normal'))

root = tk.Tk()

button = tk.Button(root, text="Click Me", command=hello)  # Makes a button
button.pack()  # Shows the button

canvas = turtle.ScrolledCanvas(root)
canvas.pack(side=tk.LEFT)

screen = turtle.TurtleScreen(canvas)

turtle = turtle.RawPen(screen, visible=False)

screen.mainloop()

enter image description here