使用 tkinter 创建椭圆形的流畅运动

2024-01-07

我正在尝试使用 tkinter 创建 Connect-Four。一旦圆盘被放置在特定的柱中,我希望它以流体运动下降到柱的底部。

我尝试过使用 Canvas 类的移动命令,但我不确定我是否使用错误,或者也许我最好在每次迭代中删除并重新绘制椭圆形。目前,圆盘确实在移动,但不是以流体方式移动。它只是将其绘制在新位置。

这是圆盘移动功能:

        counter = 0
    self.__canvas.create_oval(100,200,0,100, fill='yellow')
    self.__canvas.create_oval(100,300,0,200, fill='yellow')
    self.__canvas.create_oval(100,400,0,300, fill='brown')
    disc = self.__canvas.create_oval(200,400,100,300, fill='green')  # trying to move this specific disc
    while counter < 10:
         self.__canvas.move(disc, 0, counter)
         counter += 1

您必须调整移动的呼吁,以便移动可见;canvas.after()允许您重复调用函数,在本例中直到满足条件(磁盘到达目的地)

工作代码片段

import tkinter as tk


def smooth_motion(counter):
     canvas.move(disc, 0, dy)
     counter -= 1
     if counter >= 0:
         canvas.after(10, smooth_motion, counter)

root = tk.Tk()
canvas = tk.Canvas(root, bg='cyan')
canvas.pack()

counter = 100
disc = canvas.create_oval(200, 0, 210, 10, fill='green')
dy = (100 - 0) / counter
smooth_motion(counter)

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

使用 tkinter 创建椭圆形的流畅运动 的相关文章

  • 如何使用固定的 pandas 数据框进行动态 matplotlib 绘图?

    我有一个名为的数据框benchmark returns and strategy returns 两者具有相同的时间跨度 我想找到一种方法以漂亮的动画风格绘制数据点 以便它显示逐渐加载的所有点 我知道有一个matplotlib animat
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • 如何使用包含代码的“asyncio.sleep()”进行单元测试?

    我在编写 asyncio sleep 包含的单元测试时遇到问题 我要等待实际的睡眠时间吗 I used freezegun到嘲笑时间 当我尝试使用普通可调用对象运行测试时 这个库非常有用 但我找不到运行包含 asyncio sleep 的测
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • Spark的distinct()函数是否仅对每个分区中的不同元组进行洗牌

    据我了解 distinct 哈希分区 RDD 来识别唯一键 但它是否针对仅移动每个分区的不同元组进行了优化 想象一个具有以下分区的 RDD 1 2 2 1 4 2 2 1 3 3 5 4 5 5 5 在此 RDD 上的不同键上 所有重复键
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • Python - 在窗口最小化或隐藏时使用 pywinauto 控制窗口

    我正在尝试做的事情 我正在尝试使用 pywinauto 在 python 中创建一个脚本 以在后台自动安装 notepad 隐藏或最小化 notepad 只是一个示例 因为我将编辑它以与其他软件一起使用 Problem 问题是我想在安装程序
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject
  • Python 分析:“‘select.poll’对象的‘poll’方法”是什么?

    我已经使用 python 分析了我的 python 代码cProfile模块并得到以下结果 ncalls tottime percall cumtime percall filename lineno function 13937860 9

随机推荐

  • iOS 以编程方式取消 TouchID 身份验证对话框

    是否可以在之后以编程方式取消 TouchID 警报对话框LAContext evaluatePolicy称呼 如果是 怎么办 并非 Apple 发布的每个 API 都会进入developer apple com 或 Xcode 的文档查看器
  • 合并 data.frame 中的两行

    如同合并一个 data frame 中的行 https stackoverflow com questions 33285663 merge rows in one data frame and 当行不相交且包含空值时 将两行合并到一个数据
  • JPQL 类似 不区分大小写

    我想按名称搜索用户表中的数据 不区分大小写 Repository public interface UserRepository extends JpaRepository
  • Play 框架:重定向到带有参数的控制器方法

    我正在使用 PLAY 框架 2 2 1 构建一个 Web 应用程序 并尝试在地址栏中显示所请求站点的所有可用 http get 查询参数 甚至是请求中未设置的参数 在以下情况下 并非所有 http get 参数都已设置 我想使用默认值添加未
  • 如何在 Erlang 中同步使用端口?

    我想对 Erlang 中的端口进行同步调用 也就是说 将一些输入发送到通过端口连接的正在运行的操作系统进程 并直接获取其输出 而不是使用消息 有一个port call据说可以做到这一点的函数 然而 文档 https www erlang o
  • std::ifstream 明显比 FILE 慢吗?

    我被告知我的库比应有的速度慢 解析特定文件 文本文件 大小 326 kb 的速度慢了 30 倍以上 用户建议这可能是我正在使用std ifstream 大概不是FILE 我不想盲目重写 所以我想我应该先检查这里 因为我的猜测是瓶颈在其他地方
  • 使用trace显示racket中的程序

    我一直在完成 SICP 的最后几个练习第 1 章 其中几个练习使用高阶函数 目前 我正在尝试调试 1 45 解决方案中的一个问题 该问题引发了元数不匹配 产生误差的函数是对定点函数求解器两次应用平均运算的结果 这将使我的调试工作更加努力a
  • 是否可以在 Spring Boot 中在运行时构建自定义查询?

    这就是我正在努力做的事情 我有一个实体 Entity public class JobEntity Id GeneratedValue private Long id Enumerated EnumType STRING private P
  • 如何在 bash 的别名中包含环境变量?

    我对 bash 很陌生 我想包含一个 bash 别名的环境 我想做类似以下的事情 alias foo bar baz 这样我就可以做类似以下的事情 gt baz 40 gt foo 并且 foo 将扩展为命令bar 40 目前 上面的方法不
  • 无法在 codeigniter 中发送 AUTH LOGIN 命令

    每次我尝试发送电子邮件时都会收到一堆错误 hello The following SMTP error was encountered Failed to send AUTH LOGIN command Error from The fol
  • 在Python中寻找跨平台的类似rsync的功能,例如rsync.py

    我正在用 python 实现备份脚本 我正在努力保持跨平台 我听说有一个基于 python 的 rsync 实现 http pypi python org pypi rsync py http pypi python org pypi rs
  • 如何优雅地将“嵌套”哈希符号化_keys

    考虑以下代码 hash1 one gt 1 two gt 2 three gt 3 hash2 hash1 reduce h k v h merge k gt hash1 hash3 hash2 reduce h k v h merge k
  • JDialog setVisible(false) 与 dispose()

    在对话框上使用 setVisible false 并稍后重用它是否有意义 或者每次调用 dispose 并创建一个新的 JDialog 更安全 setVisible false 的内存泄漏怎么办 编辑 我的问题并不是关于退出应用程序 有关以
  • MPMoviePlayerPlaybackDidFinishNotification 在不应调用时被调用

    根据 Apple 的 MPMoviePlayerController 文档 MPMoviePlayerPlaybackDidFinishNotification 如果电影播放器 以全屏模式显示并且用户点击 完成 按钮 则不会发送此通知 在我
  • Servlet Faces Servlet 不可用(richfaces 4、tomcat 7)

    我正在尝试我的第一个 richfaces 项目 因此 我创建了一个新的 JSF 项目 使用 JBoss Tools eclipse 插件 并选择了以下选项 JSF2 0 JSFKickStartWithoutLibs 我没有对生成的示例进行
  • 如何显示图片?

    我在调用图片进行查看时遇到问题 在我的应用程序中 他们单击按钮后 我想将他们带到一个新页面 其中将显示图片并在其下方显示一些文本 对于这个例子 如果狗位于页面顶部 那么我想要一张图片 然后在它下面说我想要诸如品种和品种成本之类的东西 谁能帮
  • 我怎样才能修复“&需要左值”[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 所以 我创建了一个项目并复制本教程 https github com microsoft DirectX Graphic
  • 在列表中使用两种单独的字符串类型

    好的 对于我的 C 编程课程 我正在制作一款冒险游戏 我想我明白如何做大部分事情 但我在建立 世界 时遇到了困难 我有一个面向世界的课程 World cs 我开始为每个房间创建一个列表 然而 我很困惑为每个房间添加名称和描述 例如 如果Li
  • 可见命令出现在上下文菜单中的时间

    我正在尝试使用 menuContribution 中的 visibleWhen 表达式配置上下文菜单中命令的可见性 我想做的是仅当您执行以下操作时才使该命令在上下文菜单中可见 在资源视图 或包视图 中右键单击某些文件类型 资源 右键单击已打
  • 使用 tkinter 创建椭圆形的流畅运动

    我正在尝试使用 tkinter 创建 Connect Four 一旦圆盘被放置在特定的柱中 我希望它以流体运动下降到柱的底部 我尝试过使用 Canvas 类的移动命令 但我不确定我是否使用错误 或者也许我最好在每次迭代中删除并重新绘制椭圆形