Python turtle 获取 tkinter root
Python turtle get tkinter root
Python 乌龟与 tkinter 一起工作。如何从 tkinter 获取你知道的 root
?
像这样:
import tkinter
root = tkinter.Tk()
但对于乌龟。
turtle.getcanvas()
returns你(我)正在寻找的对象。
顶层widget可以通过turtle的winfo_toplevel
方法获得canvas:
import turtle
canvas = turtle.getcanvas()
root = canvas.winfo_toplevel()
它是Tk
的子类型:
import tkinter
assert type(root) is turtle._Root
assert isinstance(root, tkinter.Tk)
正如@das-g
所指出的
root = turtle.getcanvas().winfo_toplevel()
给你一个代表海龟根的对象window。
但是,如果您的用例是将海龟图形与成熟的 Tkinter 应用程序集成,则应始终首选 显式方法:
from tkinter import *
import turtle
root = Tk()
turtle_canvas = turtle.Canvas(root)
turtle_canvas.pack(fill=BOTH, expand=True) # fill the entire window
protagonist = turtle.RawTurtle(turtle_canvas)
protagonist.fd(100) # etc.
这增加了能够控制乌龟的位置和大小的额外好处canvas。另外,拥有明确的代码有助于其他人理解它。
Python 乌龟与 tkinter 一起工作。如何从 tkinter 获取你知道的 root
?
像这样:
import tkinter
root = tkinter.Tk()
但对于乌龟。
turtle.getcanvas()
returns你(我)正在寻找的对象。
顶层widget可以通过turtle的winfo_toplevel
方法获得canvas:
import turtle
canvas = turtle.getcanvas()
root = canvas.winfo_toplevel()
它是Tk
的子类型:
import tkinter
assert type(root) is turtle._Root
assert isinstance(root, tkinter.Tk)
正如@das-g
所指出的root = turtle.getcanvas().winfo_toplevel()
给你一个代表海龟根的对象window。
但是,如果您的用例是将海龟图形与成熟的 Tkinter 应用程序集成,则应始终首选 显式方法:
from tkinter import *
import turtle
root = Tk()
turtle_canvas = turtle.Canvas(root)
turtle_canvas.pack(fill=BOTH, expand=True) # fill the entire window
protagonist = turtle.RawTurtle(turtle_canvas)
protagonist.fd(100) # etc.
这增加了能够控制乌龟的位置和大小的额外好处canvas。另外,拥有明确的代码有助于其他人理解它。