我同意其他人的看法,您应该在这里使用mainloop() ,但是,如果您想保留原始代码的方式是跟踪布尔值, while x == True 。 这样,我们可以将x的值更新为False ,这样就可以避免发生错误。

当应用关闭时,我们可以使用protocol()方法更新布尔值。

如果我们将其添加到您的代码中:

x = True

def update_x():

global x

x = False

tk.protocol("WM_DELETE_WINDOW", update_x)

并将您的while语句更改为:

while x == True:

tk.update_idletasks()

tk.update()

time.sleep(0.01)

因此,您的完整代码可能如下所示:

from tkinter import *

import random

import time

tk=Tk()

tk.title("My 21st Century Pong Game")

tk.resizable(0,0)

tk.wm_attributes("-topmost",1)

x = True

def update_x():

global x

x = False

tk.protocol("WM_DELETE_WINDOW", update_x)

canvas=Canvas(tk,bg="white",width=500,height=400,bd=0,highlightthickness=0)

canvas.pack()

tk.update()

class Ball:

def __init__(self,canvas,color):

self.canvas=canvas

self.id=canvas.create_oval(30,30,50,50,fill=color)

""" Note: x and y coordinates for top left corner and x and y coordinates for the bottom right corner, and finally the fill colour for the oval

"""

self.canvas.move(self.id,0,0)

def draw(self):

pass

ball1=Ball(canvas,'green')

while x == True:

tk.update_idletasks()

tk.update()

time.sleep(0.01)

这将解决您的问题。

要重申其他人所说的,您真正需要的mainloop()此处的mainloop()而不是您的while i:语句。

mainloop()方法用于重置Tk()实例的循环。一旦代码到达显示tk.mainloop()的行,它将成为代码的下一个循环。

编写代码的正确方法是只使用mainloop()因为它会对mainloop()实例进行所有更新。

请参阅以下使用mainloop()代码:

from tkinter import *

tk=Tk()

tk.title("My 21st Century Pong Game")

tk.resizable(0,0)

tk.wm_attributes("-topmost",1)

canvas=Canvas(tk,bg="white",width=500,height=400,bd=0,highlightthickness=0)

canvas.pack()

tk.update()

class Ball:

def __init__(self,canvas,color):

self.canvas=canvas

self.id=canvas.create_oval(30,30,50,50,fill=color)

""" Note: x and y coordinates for top left corner and x and y coordinates for the bottom right corner, and finally the fill colour for the oval

"""

self.canvas.move(self.id,0,0)

def draw(self):

pass

ball1=Ball(canvas,'green')

tk.mainloop()

python升级命令出现错误_python - _tkinter.TclError:无法调用“ update”命令:应用程序已被破坏错误 - 堆栈内存溢出...相关推荐

  1. python运行是哪个键_python – 如何使用回车键调用按钮命令

    在tkinter中,当按钮具有焦点时,您可以按空格键执行与该按钮关联的命令.我正在尝试按Enter键做同样的事情.我确定我过去做过这个,但我找不到代码,而我现在正在做的事情是行不通的.我在Mac上使用 ...

  2. arcgis怎么用python重新排序_python - 根据排序数据添加新的顺序ID号(ArcGIS) - 堆栈内存溢出...

    我需要一行代码,它将根据我为数据规定的顺序发出新的顺序ID. 基本上,在按照我的喜好对数据进行排序后,原始的Object_Id对我来说不再是有意义的顺序. 在我的表中,我创建了一个新字段(短整数). ...

  3. java.nio.file 找不到_java - 断言该错误:无法访问路径(找不到java.nio.file.Path) - 堆栈内存溢出...

    我想使用Robolectric进行单元测试,但是我正在尝试使用robolectric进行简单测试,因此一开始我很困惑. 我遵循了手册,对示例进行了同样的操作,甚至其他帖子也无济于事. 每次收到错误消息 ...

  4. android autolink识别错误,android - autolink窃取ontouch事件,从而反馈触摸列表视图行无效 - 堆栈内存溢出...

    我有一个listview . 并且行布局中包含很少的布局. 在行布局中,我有一个TextView ,我想在其上启用自动链接当我启用自动链接时,链接工作正常但我们点击列表行时得到的反馈不再有效. 在行布 ...

  5. python的easygui属性错误_python - PythonAnywhere:尝试使用easygui模块时出现Tkinter.py错误 - 堆栈内存溢出...

    我的儿子正在尝试使用pythonAnywhere执行一个小程序. import random, easygui secret = random.randint(1,99) guess = 0 trie ...

  6. python求圆柱体的体积_Python 常见优化技巧,让你的程序溜溜的跑起来!

    点击上方  编程学习者社区,选择  创建星标 回复关键字资源获取编程资料 代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构.优 ...

  7. 【错误记录】Android 中调用 Process 命令行执行指令 ( java.lang.IllegalThreadStateException: process hasn‘t exited )

    文章目录 一.报错信息 二.解决方案 一.报错信息 2021-05-07 13:24:24.672 29512-29512/kim.hsl.a7_zip E/AndroidRuntime: FATAL ...

  8. python 堆栈溢出_python - 使用CFFI释放内存时,“ MemoryError:堆栈溢出”是什么意思? - 堆栈内存溢出...

    这一个问题, 这一个 . 我使用CFFI创建DLL,并从C ++应用程序中调用它. 我在问自己如何找到释放由DLL分配的内存的方法,我遵循@metal在其答案中提到的想法. 现在是我的Python代码 ...

  9. python子进程的输出不可见_python-输出子进程调用的命令行?

    美观且可扩展的方法 我一直在使用这样的东西: #!/usr/bin/env python3 import os import shlex import subprocess import sys de ...

最新文章

  1. PyTorch多卡分布式训练:DistributedDataParallel (DDP) 简要分析
  2. Java黑皮书课后题第8章:*8.3(按考分对学生排序)重写程序清单8-2,按照正确答案个数的升序显示学生
  3. idea会抛出Unable to import maven project: See logs for details错误
  4. web服务器文档根目录在哪里,web服务器根目录在哪
  5. CentOS7服务管理(重启,停止,自动启动命令)
  6. 当AI遇上云计算,北京 · DevRun 华为云开发者大会
  7. python去干扰线_GitHub - Guardiant/VerifyCode: 验证码去干扰线识别
  8. 内是不是半包围结构_什么是自行车变速器上的“倾斜平行四边形”结构?
  9. C++轻量级微服务_微服务的部署
  10. 51单片机原理以及接口技术(三)-80C51的指令系统
  11. 小妙招:教你如何查询获取企业工商数据
  12. 安卓电子书格式_纯干货|提升电子书阅读体验的四点感受
  13. 金九银十进大厂必刷的105道Java面试题(不得不说的秘密)
  14. nginx image_filter模块415问题
  15. 环球好货VIP会员首次建群的方法及话术
  16. 公交线路查询系统 C++实现 图
  17. 使用PS切图时,调整标尺单位
  18. 创建visio的形状
  19. Amazon DynamoDB详解
  20. 数据结构系列笔记——图

热门文章

  1. 开发团队里是否需要测试人员?
  2. 如何高效地阅读文献?
  3. OpenCV之feature2d 模块. 2D特征框架(1)Harris 角点检测子 Shi-Tomasi角点检测子 定制化创建角点检测子 亚像素级的角点检测 特征点检测
  4. Coursera课程Python for everyone:chapter 2
  5. 直方图应用:直方图均衡化,直方图匹配,对比直方图
  6. 人工智能:第八章 自动规划
  7. MyBatis拦截器原理探究MyBatis拦截器原理探究
  8. 使用System Center DPM 2012 SP1保护企业关键数据(二)备份及恢复AD
  9. LeetCode 75 Sort Colors(颜色排序)
  10. bioperl 格式化genebank的输出