【问题标题】:How to combine Turtle with tkinter如何将 Turtle 与 tkinter 结合使用
【发布时间】:2022-01-18 22:25:06
【问题描述】:

所以我有 tkinter 代码,运行时会打开一个带有平方根计算器的新窗口,当我尝试在与平方根计算器相同的窗口中获取海龟时,会弹出 2 个窗口

import tkinter as tk
from turtle import Turtle, Screen
root = tk.Tk()

canvas1 = tk.Canvas(root, width=400, height=300, relief='raised')
canvas1.pack()

label1 = tk.Label(root, text='Square root calculator')
label1.config(font=('helvetica', 14))
canvas1.create_window(200, 25, window=label1)

label2 = tk.Label(root, text='Enter number:')
label2.config(font=('helvetica', 10))
canvas1.create_window(200, 100, window=label2)

entry1 = tk.Entry(root)
canvas1.create_window(200, 140, window=entry1)



def sqr():
    x1 = entry1.get()

    label3 = tk.Label(root, text='The Square root of ' + x1 + ' is:', font=('helvetica', 10))
    canvas1.create_window(200, 210, window=label3)

    label4 = tk.Label(root, text=float(x1) ** 0.5, font=('helvetica', 10, 'bold'))
    canvas1.create_window(200, 230, window=label4)


button1 = tk.Button(text='Calculate square root', command=sqr, bg='brown', fg='white',
                    font=('helvetica', 9, 'bold'))
canvas1.create_window(200, 180, window=button1)
pamest = tk.Button(root, text="Quit", command=root.destroy)
pamest.pack(pady=20)

screen = Screen()
screen.setup(500,350)
screen.screensize(600,600)
turtle = Turtle()
turtle.up()


root.mainloop()


【问题讨论】:

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


    【解决方案1】:

    从解释龟的独立嵌入式使用的龟文档部分开始。您正在尝试在嵌入式情况下使用 turtle,但使用的是独立 API。我们可以按如下方式实现您要执行的操作:

    import tkinter as tk
    from turtle import RawTurtle, TurtleScreen
    
    def sqr():
        x1 = entry1.get()
    
        label3 = tk.Label(root, text='The Square root of ' + x1 + ' is:', font=('helvetica', 10))
        canvas1.create_window(200, 210, window=label3)
    
        label4 = tk.Label(root, text=float(x1) ** 0.5, font=('helvetica', 10, 'bold'))
        canvas1.create_window(200, 230, window=label4)
    
    root = tk.Tk()
    
    canvas1 = tk.Canvas(root, width=400, height=600, relief='raised')
    canvas1.pack()
    
    tk.Button(root, text="Quit", command=root.destroy).pack(pady=20)
    
    label1 = tk.Label(root, text='Square root calculator', font=('helvetica', 14))
    canvas1.create_window(200, 25, window=label1)
    
    label2 = tk.Label(root, text='Enter number:', font=('helvetica', 10))
    canvas1.create_window(200, 100, window=label2)
    
    entry1 = tk.Entry(root)
    canvas1.create_window(200, 140, window=entry1)
    
    button1 = tk.Button(text='Calculate square root', command=sqr, font=('helvetica', 9, 'bold'))
    canvas1.create_window(200, 180, window=button1)
    
    canvas2 = tk.Canvas(canvas1, width=400, height=300)
    canvas1.create_window(203, 450, window=canvas2)
    
    screen = TurtleScreen(canvas2)
    screen.bgcolor('pink')
    
    turtle = RawTurtle(screen)
    turtle.circle(50)
    
    screen.mainloop()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-11
      • 2019-10-24
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 2012-04-01
      相关资源
      最近更新 更多