如何使python文本变成python turtle中的按钮? [英] How to make python text into a button in python turtle?

查看:676
本文介绍了如何使python文本变成python turtle中的按钮?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将"CAT"一词变成一个按钮,因此当单击它时,它会显示"CAT".另外,当我想要的按钮不是按钮时,它应该处于单词现在正确的位置.需要提供任何帮助.谢谢

I want to make the word "CAT" into a button, so when it's clicked it says "CAT". Also, the button I want should be in the position that the word is right now when it's not a button. Any help provided is needed. Thank you

我已经尝试过tkinter模块,但是问题在于它使用按钮打开了一个单独的窗口.我想要的是主屏幕上的按钮.

I have already tried the tkinter module, but the problem with that is it opens a separate window with the button. What I want is a button on the main screen.

import turtle
screen = turtle.Screen()

# this assures that the size of the screen will always be 400x400 ...
screen.setup(800,800)
turtle.ht()
turtle.penup()
turtle.goto (50, 200)
turtle.color("black")
turtle.write("CAT", move=False, align="center", font=("Times New Roman", 120, "bold"))
screen.bgpic("background.gif")
turtle.st()
turtle.forward(145)
turtle.left(90)
turtle.forward(10)
turtle.pendown()
turtle.forward(110)
turtle.left(90)
turtle.forward(287)
turtle.left(90)
turtle.forward(110)
turtle.left(90)
turtle.forward(287)
turtle.ht()

我希望输出在屏幕顶部显示一个巨大的按钮(黑色),并显示"CAT".当按下该按钮时,我希望它大声说出"CAT".现在,顶部仅显示"CAT"文本.我想用一个表示相同内容的按钮替换该文本.如果我在屏幕上单击,则希望单击位于特定的坐标中.我该怎么做. 谢谢你!

I expect the output to be a huge button (in black) at the top of the screen saying "CAT". When that button is pressed, I want it to say "CAT" out loud. Right now there is just text at the top saying "CAT". I want to replace that text with a button saying the same thing. If I use on screen click I want the click to be in specific coordinates. How would I do that. Thank You!

推荐答案

单击屏幕时,可以使用turtle do draw rectangle which could look like button. And you can use onscreenclick(check_button)to run function check_button`.如果单击矩形,则它可以运行执行某些功能的函数.

You could use turtle do draw rectangle which could look like button. And you can useonscreenclick(check_button)to run functioncheck_button` when you click screen. If you clicked in rectangle then it could run function which does something.

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.Buttoncanvas.master用作其父级,并使用create_window(x, y, window=widget)

Or you can use tk.Button with canvas.master as its parent, and put it on canvas using 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的小部件放置在画布上

The same way you can put other tkinter's widgets on canvas

编辑:具有更多小部件的示例

example with more widgets

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()

这篇关于如何使python文本变成python turtle中的按钮?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆