【发布时间】:2016-03-04 09:59:43
【问题描述】:
Python 乌龟与 tkinter 一起工作。如何从 tkinter 获取您知道的 root?
像这样:
import tkinter
root = tkinter.Tk()
但对于乌龟。
【问题讨论】:
标签: python tkinter turtle-graphics
Python 乌龟与 tkinter 一起工作。如何从 tkinter 获取您知道的 root?
像这样:
import tkinter
root = tkinter.Tk()
但对于乌龟。
【问题讨论】:
标签: python tkinter turtle-graphics
通过海龟画布的winfo_toplevel 方法可以获得*小部件:
import turtle
canvas = turtle.getcanvas()
root = canvas.winfo_toplevel()
它是Tk的子类型:
import tkinter
assert type(root) is turtle._Root
assert isinstance(root, tkinter.Tk)
【讨论】:
turtle.getcanvas().protocol()
正如@das-g指出的那样
root = turtle.getcanvas().winfo_toplevel()
给你一个代表海龟根窗口的对象。
但是,如果您的用例是将海龟图形与成熟的 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.
这增加了能够控制海龟画布的位置和大小的额外好处。此外,拥有明确的代码有助于其他人理解它。
【讨论】:
turtle.getcanvas()
返回您正在(我正在)寻找的对象。
【讨论】:
assert not isinstance(turtle.getcanvas(), tkinter.Tk)。