有谁知道如何防止滚动条出现在海龟上
Python 中的图形窗口
答案可能是用turtleembedded在 tkinter 而不是独立的。作为独立乌龟使用ScrolledCanvas
默认情况下,嵌入式海龟允许您使用它,或者简单地坚持使用基本的Canvas
.
也就是说,以下是使用独立海龟实现此目的的三种不同方法:
1) 只需将方形窗口从 400 x 400 增加到 420 x 420:
screen.setup(420, 420)
这是有效的,因为海龟已经存储在它的全局中_CFG
窗口和画布的配置字典默认大小:
_CFG = {
"width" : 0.5, # Screen
"height" : 0.75,
"canvwidth" : 400,
"canvheight": 300,
# ...
}
在此画布尺寸下方,会出现滚动条。除了有一个模糊因素来解释窗口chrome我们可以看到setworldcoordinates()
:
self.screensize(wx-20, wy-20)
因此,任何 420 x 320 或更大的窗口默认情况下不应获得滚动条,除非画布也重新调整。
2)操纵_CFG
字典通过"turtle.cfg"
文件。与假货不同_pd
由 即时创建的笔字典turtle.pen()
方法,没有运行时用户界面turtle._CFG
字典,除非我们在引擎盖下探索:
from turtle import Screen, Turtle, _CFG
TURTLE_SIZE = 20
TRIANGLE_SIZE = 120
_CFG.update({"canvwidth": 380, "canvheight": 380}) # 400 - 20
screen = Screen()
screen.setup(400, 400)
triangle = Turtle("triangle")
triangle.shapesize(TRIANGLE_SIZE / TURTLE_SIZE)
triangle.color("pink")
triangle.right(30)
screen.exitonclick()
3)修补setupcanvas
独立乌龟的方法_Root
类来替代泛型Canvas
for ScrolledCanvas
。这消除了对任何幻数的需要,并且将简单地关闭滚动:
import tkinter as TK
from turtle import Screen, Turtle, _Root
def setupcanvas(self, width, height, cwidth, cheight):
self._canvas = TK.Canvas(self, width=cwidth, height=cheight)
self._canvas.pack(expand=1, fill="both")
_Root.setupcanvas = setupcanvas
TURTLE_SIZE = 20
TRIANGLE_SIZE = 120
screen = Screen()
screen.setup(400, 400)
# ...