Вы можете использовать turtle do draw rectangle which could look like button. And you can use
onscreenclick (check_button) to run function
check_button` при нажатии на экран.Если вы нажмете в прямоугольнике, он может запустить функцию, которая что-то сделает.
import turtle
def show_cat():
turtle.ht()
turtle.penup()
turtle.goto (15, 220)
turtle.color("black")
turtle.write("CAT", move=False, align="center", font=("Times New Roman", 120, "bold"))
def check_button(x, y):
if -300 < x < 300 and 200 < y < 400:
show_cat()
screen = turtle.Screen()
screen.setup(800,800)
turtle.penup()
turtle.goto(-300, 200)
turtle.pendown()
turtle.begin_fill()
turtle.fillcolor('red')
turtle.fd(600)
turtle.left(90)
turtle.fd(300)
turtle.left(90)
turtle.fd(600)
turtle.left(90)
turtle.fd(300)
turtle.left(90)
turtle.end_fill()
turtle.onscreenclick(check_button)
turtle.mainloop()
Или вы можете использовать tk.Button
с canvas.master
в качестве родителя и поместить его на холст, используя create_window(x, y, window=widget)
import turtle
import tkinter as tk
def show_cat():
turtle.ht()
turtle.penup()
turtle.goto (15, 220)
turtle.color("black")
turtle.write("CAT", move=False, align="center", font=("Times New Roman", 120, "bold"))
screen = turtle.Screen()
screen.setup(800,800)
canvas = screen.getcanvas()
button = tk.Button(canvas.master, text="Click Me", command=show_cat)
canvas.create_window(0, 0, window=button)
#canvas.create_rectangle((100, 100, 700, 300))
turtle.mainloop()
Так же, как вы можете поместить другие виджеты tkinter на холст
РЕДАКТИРОВАТЬ: пример с большим количеством виджетов
import turtle
import tkinter as tk
def show_cat():
label = tk.Label(canvas.master, text="Cat", font=("Times New Roman", 120, "bold"))
canvas.create_window(0, -300, window=label)
canvas.create_text(0, 300, text="HELLO", fill="red", font=("Times New Roman", 120, "bold"))
#-------------------------------------------
screen = turtle.Screen()
screen.setup(800,800)
canvas = screen.getcanvas()
button = tk.Button(canvas.master, text="Click Me", command=show_cat)
canvas.create_window(0, 0, window=button)
turtle.mainloop()