Python 海龟滚动条

2024-04-02

有谁知道如何防止滚动条出现在 Python 中的小窗口尺寸的 Turtle Graphics 窗口上?

以下代码生成下图。对于 600 像素 x 600 像素的屏幕,不会出现滚动条。

import turtle

TURTLE_SIZE = 20
TRIANGLE_SIZE = 120

screen = turtle.Screen()
screen.setup(400, 400)

triangle = turtle.Turtle("triangle")
triangle.shapesize(TRIANGLE_SIZE / TURTLE_SIZE)
triangle.color("pink")
triangle.right(30)][1]][1]

有谁知道如何防止滚动条出现在海龟上 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)

# ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 海龟滚动条 的相关文章

随机推荐

  • Flask - ImportError:没有名为 app 的模块

    首先我创建了 init py from flask import Flask app Flask name 然后在同一目录中的单独文件中 run py from app import app app run debug True 当我尝试跑
  • 将 Javadoc 添加到 NetBeans 中的库

    我刚开始使用 NetBeans IDE 当我尝试查看 java API 的文档时 例如 Systemclass 它说 javadoc 没有安装 如何安装文档 首先 您下载 javadoc 其次 转到 工具 gt Java 平台 然后从 Ja
  • 确定递归函数的复杂性(大 O 表示法)

    我明天有计算机科学期中考试 我需要帮助确定这些递归函数的复杂性 我知道如何解决简单的情况 但我仍在努力学习如何解决这些更困难的情况 这些只是我无法解决的一些示例问题 任何帮助将不胜感激 并对我的学习有很大帮助 谢谢 int recursiv
  • 如何以编程方式询问当前应用程序的 URL 方案?

    我的 iOS 应用程序有 50 多个目标 每个目标都有自己的自定义 URL 方案 我需要检测来自 webview 的请求是否与当前运行的应用程序的方案匹配 为了做到这一点 我需要能够从代码中询问当前应用程序的 URL 方案 类似的问题涉及尝
  • MySQL如何获取特定范围内的平均值

    我有以下表格数据 value 1 5 10 5 12 36 我想将这些值映射到 range avg 0 21 1 5 10 5 12 4 21 001 34 0 34 001 64 36 64 0 基本上将每个值映射到范围并计算每个范围内所
  • Android dagger依赖循环

    我有两个具有相同范围的依赖项 彼此需要 我的依赖项是具有不同方法的域服务 每种方法都有不同的业务案例 某些业务案例可能会使用另一个领域的方法 为此 我需要域 1 可用于域 2 反之亦然 但是当我这样做时 我收到依赖循环编译错误 经过谷歌搜索
  • 指针 - 数组和指针之间的区别

    有什么区别a a和第一个元素的地址a 0 相似地p是一个指向用数组地址分配的整数的指针 会pointer 进行指针算术并根据数据类型获取值 进一步的价值是什么 预计 它应该是一个指针吗 include
  • Maya Python 中的 cmds.scriptCtx 到底有什么作用?

    我想知道 cmds scriptCtx 命令到底是做什么的 因为我尝试将其直接从 Autodesk 帮助页面复制并粘贴到我的脚本编辑器中 但没有任何反应 以下是 Autodesk 帮助中的脚本 import maya cmds as cmd
  • C#:获取 XML 文档的所有节点

    有没有一种简单的方法 从 xml 文档中获取所有节点 我需要每个节点 子节点等来检查它们是否具有某些属性 或者我是否必须爬行文档 询问子节点 在 LINQ to XML 中 这非常简单 XDocument doc XDocument Loa
  • (选择)H2 中的Where()

    我有两种软件 都是Java 一种是MySQL 另一种是H2数据库 我的问题是在 MySQL 中我有这个查询 Select from X where 1 2 3 in select 4 5 6 from Y 但在 H2 中给我这个错误 子查询
  • 教科书上的长除法如何是 O(n^2) 算法?

    Premise This 维基百科页面 http en wikipedia org wiki Computational complexity of mathematical operations建议 的计算复杂度 教科书 长除法 http
  • sprintf 用于无符号 _int64

    我有以下代码 sprintf 中第二个 d 的输出始终显示为零 我认为我指定了错误的说明符 任何人都可以帮助我编写具有正确值的字符串 这必须在 posix 标准中实现 感谢您的投入 void main unsigned int64 dbFi
  • PercentRelativeLayout 性能更高?

    我总是使用 LinearLayout 和relativelayout 并且我正在阅读有关 新 的内容百分比相对布局 http developer android com intl es reference android support p
  • 标签云网络服务?

    是否有可以生成标签云的公共免费网络服务 我正在寻找类似 Google Chart 的东西 URL 输入 图像输出 我非常怀疑 为此提供网络服务没有任何意义 不过 有大量的图书馆 代码点火器 http codeigniter com foru
  • 无法将类型“NHibernate.Hql.Ast.HqlCast”的对象转换为类型“NHibernate.Hql.Ast.HqlBooleanExpression”

    我正在使用以下 C 代码 public IList
  • 如何嵌入LLVM?

    LLVM 核心项目包括 编译器 将源代码转换为 LLVM IR VM 执行编译后的IR代码 如何将 VM 嵌入到 C 应用程序中 LLVM 实际上是一个可以链接到的库的集合 因此嵌入起来非常容易 更多时候 LLVM 会获取您生成的 IR 并
  • 如何在 Eclipse 中下载或链接 OpenCV Javadoc

    我使用 Eclipse IDE 在 Java 中使用 OpenCV 3 0 但我想将 Javadoc 附加到 OpenCV jar 以便轻松阅读有关方法和参数用法的信息 在我使用 OpenCV 2 4 10 之前 它有很好的源代码文档 可以
  • 如何在 IOS 8 Iphone 4S 上使用移动 Safari Web 应用程序获得全屏模式

    我对移动开发非常陌生 所以请不要因为新手问题而困扰我 我认为我有正确的元标记 从苹果网站来看 它说使用下面的标签来允许在全屏模式下运行 但它似乎不起作用 宽度和高度是为 IOS 8 上的 Iphone 4S 设置的 width 320px
  • 添加剪辑路径后子元素消失

    对于我正在做的一个设计项目 我想在我的辅助内容上放置一个剪辑路径 然而 在放置剪辑路径代码后 一些子元素或元素在我的 about内容 我尝试过使用position absolute or z index但我的内容没有任何反应 about内容
  • Python 海龟滚动条

    有谁知道如何防止滚动条出现在 Python 中的小窗口尺寸的 Turtle Graphics 窗口上 以下代码生成下图 对于 600 像素 x 600 像素的屏幕 不会出现滚动条 import turtle TURTLE SIZE 20 T