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
,但我无法点击按钮,因为它不会响应。
答案 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()