首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我的tkinter盒从不关闭,也不能在我的终端上打印

tkinter是Python的一个GUI库,用于创建图形界面应用程序。在使用tkinter时,遇到盒(Window)从不关闭且无法在终端上打印的问题,可能是由于以下几个原因导致的:

  1. 错误的事件循环:在使用tkinter创建GUI应用程序时,需要通过调用主循环(main loop)来监听和处理各种事件,例如点击按钮、输入文本等。如果没有正确地启动主循环,窗口可能无法响应关闭事件或者无法正常打印内容。

解决方法:确保在创建窗口后,通过调用mainloop()方法启动主循环,例如:

代码语言:txt
复制
import tkinter as tk

window = tk.Tk()
# 窗口内容和逻辑代码

window.mainloop()  # 启动主循环
  1. 没有关闭窗口的逻辑:如果没有在代码中编写关闭窗口的逻辑,即使点击了窗口的关闭按钮,窗口也不会关闭。

解决方法:在代码中添加关闭窗口的逻辑,例如:

代码语言:txt
复制
import tkinter as tk

def close_window():
    window.destroy()  # 关闭窗口

window = tk.Tk()
# 窗口内容和逻辑代码

window.protocol("WM_DELETE_WINDOW", close_window)  # 关联关闭按钮和关闭函数

window.mainloop()
  1. 打印内容不可见:如果在使用print()函数打印内容,但是在终端上看不到输出,可能是因为tkinter默认将标准输出重定向到窗口中,而不是终端。

解决方法:可以通过重定向标准输出到终端来解决这个问题。可以使用sys模块将标准输出重定向到终端,例如:

代码语言:txt
复制
import tkinter as tk
import sys

def print_to_terminal(content):
    print(content)
    sys.stdout.flush()  # 立即输出到终端

window = tk.Tk()
# 窗口内容和逻辑代码

window.mainloop()

然后,在需要打印的地方使用print_to_terminal()函数代替print()函数。

这些是可能导致tkinter盒不关闭且无法在终端上打印的一些常见原因和解决方法。如果问题仍然存在,可能需要检查代码中其他相关的因素,例如是否有死循环阻塞了主循环等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python Tkinter Gui 运行卡顿,多线程解决界面卡死问题

Python Tkinter Gui 运行卡顿,多线程解决界面卡死问题 ---- 文章目录 Python Tkinter Gui 运行卡顿,多线程解决界面卡死问题 前言 一、问题描述 二、解决思路...Tk8.0 后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中,Python 使用 Tkinter 可以快速创建 GUI 应用程序,由于 Tkinter 是内置到 python 安装包中、...二、解决思路 引用线程来执行Button按钮绑定事件函数,现实运行卡顿,解决界面卡死。...(0.05) # 睡眠 self.run_log_print(message='是小洲2 - 打印完成') def run_log_print(self, message)...注意:代码中关键部分都写了注释,本篇博客只是介绍了如何解决tk界面运行卡顿问题; 关于组件具体使用,请参考另一篇博客:更新中 免费在线视频转Gif网址:https://www.img2go.com

3K20

Pyppeteer:比selenium更高效爬虫界新神器

如果运行pyppeteer-install命令,在第一次使用pyppeteer时候会自动下载并安装chromium浏览器,效果是一样。...基于方便、便与管理考量,需要整理Pyppeteer工具类,提供给团队使用,下面是在工作中整理一个简单工具类,共大家参考,由于内容有点多,大家可以去WX(crawler-small-gun),...•logLevel(int | str):用于打印日志日志级别。默认值与根记录器相同。 •autoClose(bool):脚本完成时自动关闭浏览器进程。默认为True。...: 不知道为什么,如果不加 dumpio=True 有时会出现浏览器卡顿 •autoClose:默认就好,不过如果你需要保持浏览器状态,可以不关闭,下次直接连接这个已存在浏览器 ignoreDefaultArgs...# 如果指定的话,chrome会自动新建一个临时目录使用,在浏览器退出时候会自动删除临时目录 # 在删除时候可能会删除失败(不知道为什么会出现权限问题,windows) 导致浏览器退出失败

2.2K41

Junit单元测试教程_单元测试调试react源码

在程序中犯错误就像生活中犯错一样,错误不是一天两天而形成。当需要改时候,不是能花少时间而改掉。这里谈到程序中错误,就是著名Bug。...三、黑盒测试与白测试 3.1 黑盒测试 黑盒测试又称功能测试。它通过测试来检验程序是否能正常使用。在测试过程中,我们把程序看作为一个打不开盒子,黑黑什么看不见,内部代码怎么写不知道。...这也就是“白测试”为什么叫穷举路径测试原因,再次强调,是因为我们清楚程序内部结构和代码,从而检查所有结构正确与否和预期值。 注意: 单元测试就是白测试一种!...上一步骤为什么需要把测试过数据注释掉呢? 答案来了,的确很麻烦,至于为什么注释掉,那是因为我们在写项目代码时候,需要测试,不可能在同一个测试类测试这么多数据。...现在我们去运行add()方法,结果如下: 这时候,我们发现控制台是绿色并输出打印结果,这说明我们程序没有问题。如果再其中加入一个算数异常会有怎么样结果呢?

69420

tkinter系列 第五课 Checkbutton窗口部件 】

python中有好几个库都可以实现,这个系列我们一起来学习如何使用python自带tkinter库来实现。...通常是在两个不同值之间选中或者选中,一组按钮就可以实现很多值一个选择。 例-1:登入网站是否要记住网站账号密码 ? 例-2:选择你喜欢动物 ?...=print_state ).pack() # 程序一直循环,直到我们关闭窗口 root.mainloop() 效果: ?...解释: 复选框从一个状态变化到另外一个状态就会触发命令,启动程序是没有选中,这是用鼠标点击选中,在终端区就会打印出1,再点击取消选中就会打印0。...2.多个复选框 代码: from tkinter import * import tkinter.messagebox #创建一个主窗口 root = Tk() # 创建 宽400高250窗口 x是小写英文字符

1.6K30

在别人写代码上做修改是这样保证正确性

有两个团队领导分别做项目经理和技术经理,由领导亲自做设计方案;作为团队架构师被指派亲自负责查询服务模块开发;一名一直做基础数据服务同学做基础服务部分改造;一个同学专门负责白测试;一个同学负责黑盒测试...“衣带渐宽悔,为伊消得人憔悴。”此第二境界。“众里寻他千百度,蓦然回首,那人却在灯火阑珊处。”此第三境界。 第一境界表达本意是高瞻远瞩,立志高远。...所以我遇到这种问题时候都是不愿意纠结Review Code别人代码时候从不去纠结别人这种问题,只说自己考虑,别人是否接受都不会因为这个把别人代码打回去。...这里Code Review同事纠结,非要遵从他思路,不同意改,觉得没有争论必要,提出加个注释作为妥协,结束这个争论。 其中最重要一条,涉及一个日志打印。...建议他这样保证。后来,自己想了一下,如果用两个模板,两个append同时写一个日志文件,之前也没有这么用过,也有风险,所以还是按照他说改了。

1.1K20

tkinter系列 第二课 Button部件 】

比如,写了一个程序,直接关闭文件,会问我是否要保存还是删除;进入一个网页输入完账号密码需要登录等,这些都是按钮一个应用。 ? ?...2.点击按钮打印名字 上面的按钮虽然已经显示出来了,但是实际上点击是没有反应,因为你并没有告诉点击按钮后该干什么。下面我们就来给它添加一个功能,点击按钮,就显示你名字。...var_name.set("大家好,是阿牛") # 2.添加一个显示名字标签 var_name = StringVar()# 设置一个字符变量,tkinter自带 # 这里将原来text...设置内容,显示到标签上 var_name.set("大家好,是阿牛") def clear_name(): # 将内容设置为空 var_name.set('') # 2.添加一个显示名字标签...var_name = StringVar()# 设置一个字符变量,tkinter自带 # 这里将原来text改成了textvariable了,然后等于var_name,这样内容就可以改变了 display_name

1.1K10

Python|GUI编程中Entry部件详解

一、Entry部件基本介绍 Entry小部件是Tkinter基本小部件,用于从应用程序用户获取输入,即文本字符串。这个小部件允许用户输入一行文本。...下面给大家介绍一下简单Entry输入框创建: import tkinter as tk windon = tk.Tk() tk.Label(windon, text="账号").grid(row...我们将函数show_entry_fields()绑定到一个自定show按钮,该函数对entry对象使用get()方法。所以,每次点击这个按钮,输入字段内容就会打印在我们调用脚本端上。...三、Entry最简单计算器实例化 了解了上面的操作之后,我们可以编写一个计算器功能,但们并不是真的在编写计算器,而是提供一个能够计算任何数学表达式并打印结果图形用户界面。...,我会根据读者要求来更新更多和tkinter相关内容,有读者想看什么有趣小程序都可以留言告诉笔者,每周六就会更新本人原创文章。

1.8K40

专访面壁曾国洋:踩过 1000 次大模型坑后 ,造一个性能小钢炮

大模型时代,AI native 是必然趋势。面壁智能在 MiniCPM-2B 性能水到渠成后,选择用最小规模,做最强 AI。...面壁智能还把多模态版本MiniCPM-V 部署在手机,首批跑通了多模态大模型在手机上部署。 更重要是,端侧模型有很强商业意义。它使得在端侧做应用这件事从不可能变成了可能。...曾国洋:一方面是我们想要在小规模模型上验证『模型沙』得到最优参数,另一方面是因为前段时间端侧模型受到了很多媒体报道和关注。我们发现2B模型正好能够跑在各种端侧设备上。...因为我们做了非常多实验,发现可以探索东西还非常多,做一些探索就能看到模型效果、效率在持续提升。同时能感受到,现在在端侧上,包括各大手机厂商其实开始重视大模型能否运行在手机或终端上。...Mistral-7B这样模型在之前是必须在 GPU、云端上,这样其实限制了它在实际应用中范围,因为用户没有 GPU等设备,就可能跑起来。

45910

面试官问你“有什么问题问我吗?”,你该如何回答?

除非你和另外一个人在能力上相同,但是只能在你们两个人中选一个,那么这个问题才对你能不能拿到offer至关重要。有准备总比没准备好,给面试官留一个好影响总归是没错。...除此之外,不要问太Low问题,会显得你整个人格局比较小或者说你根本没有准备(侧面反映你对这家公司不伤心,既然你上心,为什么要要你呢)。...这个岗位为什么还在招人? (岗位真实性和价值咨询) 大概什么时候能给我回复呢? (面的时候,如果面试官没有说的话,可以问一下) .........来个补充,顺便送个祝福给大家 薪酬待遇和相关福利问题一般在面的时候(最好不要在前面几面的时候就问到这个问题),面试官会提出来或者在面试完之后以邮件形式告知你。...每个人都有每个人难处。引用一句《阿甘正传》里面的台词:“生活就像一巧克力,你永远不知道下一块是什么味道“。 ? END

1.9K30

Why APP But Not WebPage

点击百科内部内链,尝试跳转到另一个百科界面,突然,浏览器一片空白,又被引导向appstore。 很抱歉,直接关闭了百度,使用谷歌和维基百科继续查询资料。...这一次,谷歌虽然在下方提示【在IOS上尝试使用谷歌桌面版,获取更好体验】,但至始至没有把强制跳到appstore。维基百科就更不用说了,连使用app都没有提示。...这一点十分佩服MIUI,能在这种隐私岁随意获取风气下站住来守住用户底线,无论其目的如何,这一点已经赢得了好感【虽然不用安卓】 对于软件商来说,用户数据是一大笔财富。...为什么不是浏览器应用 隐私 在这个隐私即金钱时代,对于国内厂商来说,首先一个遗憾事情是,浏览器是很难获取到用户隐私信息。不是说功能限制,而是浏览器其核心就是沙化。...,比如腾讯不可能把王者荣耀搬到浏览器上,你不可能在浏览器里跑机器学习。

77710

为你ios程序穿上安全外衣

“看过本书朋友,能够将自己 iOS 应用在安全方面的得分,从不及格提升到 80 分。”...很多人把安全问题完全交给 iOS 系统自带(Sandbox),但是仅仅靠沙也是不够。因为如果不做其它防护,一旦沙被攻破,那么程序安全性就完全无法保障了。...但是,「猫和老鼠」游戏每天都在上演,在我们不断增加防御手段同时,黑客攻击手段在不断升级。 所以,安全问题会是一个永不过时的话题,没有绝对意义上安全。...而一些破坏性更强逆向攻击行为都不敢将其公开,因为几乎所有应用都在这些攻击方式下不能幸免。 那我个人为什么对安全这么感兴趣呢?其实说来话长,高中时就开始学习编程,当时梦想是当一名黑客。...并不期望《iOS应用安全攻防实战》能够解决所有的安全问题,但是相信,看过本书朋友,能够将自己 iOS 应用在安全方面的得分,从不及格提升到 80 分。

39710

自己动手DIY:N1软路由

那么他网口就对把主路由器数据进行收发并进行处理。旁路由和协处理器相似。 ? 在恩山论坛上面看到用N1子做为主路由器。大家可以去试试,毕竟N1算力还算可以。...这样N1数据就会返回给主路由了。 ? 这里有人会问为什么上面要关闭IPV6,因为我家主路由器不支持IPV6。还有一点就是设置了DHCP指向了主路由器。 ?...由于N1有两个USB,所以你还可以通过N1把你打印机变成无线,这对很多在zf老式打印机很适用。只要在这个局域网中安装好驱动就可以使用这个打印机。虽然打印机支持网络连接。 ?...下期预告: 后面是准备做一个简单家庭NAS,只是方便存文件,没什么机密文件。之前爆出来党妹NAS出问题了,到不是很害怕,因为连外网,就局域网内使用。我们工作组三个人用。...可能还会使用N1子如果能白嫖到的话。也有可能使用工控机,然后安装黑群晖或者开源NAS系统。 引用: 在捣鼓时候,下面的帖子帮到了很多,大家可以看看。

5.5K40

「后端小伙伴来学前端了」分析Vue脚手架结构

和他们聊天,讲很多东西都插上嘴(学习路上一定要明白,交流才是让人进步最快方式,也是发现自己缺陷和长处最快方式) 解决问题方式不同。同样问题,他们解决问题代码远远比我写优雅。...看待问题角度、深度不一样。更多是如何立马解决当前问题,而不会、不知道自己解决方式会不会带来其他问题。...$mount('#app') // Vue $mount()为手动挂载 这个不是一下能说清,学艺精,以后再补上 哈哈 但是看到这里其实还是没懂,因为浏览器它是解析不了vue,我们必须要把我们写...为什么这么做呢?(脚手架给我们配置) 很多细节没法一一说明,还在继续学习中。一起加油。 自言自语 大家一起加油!!!如若文章中有不足之处,请大家及时指出,在此郑重感谢。...纸上得来觉浅,绝知此事要躬行。 大家好,是博主宁在春:主页 一名喜欢文艺却踏上编程这条道路小青年。 希望:我们,待别日相见时,都已有所成。

38820

【GAMES101】Lecture 13 14 加速光线追踪 AABB

包围 对于下面这个壶,可以用一个框把它框起来,如果光线和这个框没有交点,那是不是就不会和这个壶有任何交点,那是不是这一块都不用算了,基本思想就是这个Bounding Volumes,叫包围 轴对...我们这里为什么要用上轴对称面呢,这是因为这样计算量小一些,当这个光线和某些面垂直或者平行时候,计算这个t只需要用到三维向量中一个分量进行计算即可 下面就到lecture14讲如何通过这个aabb...KD树,就是二叉树,每次把场景分成两部分,每次都从不维度划分,比如这次沿xy平面,下次沿yz平面,再下次沿zx平面,但是都是这种正交方向 然后同样二分是这个BSP树,也是每次分两部分,但是不同是它这个方向是斜...KD-Tree 怎么建立这个KD树呢,其实思路很清晰,就是每次将这个场景沿着一个轴平面分成两部分,这就产生两个子节点,然后继续递归下去划分,然后直到这个节点内物体数量比较少,并且所有的物体都挂在这个叶子节点上...然后就是和均匀网格一样做法,看光线路径上和哪些块相交,再继续看块内物体有没有和光线相交,找出最近相交点 但是这个KD树同样有问题哈,就是一个物体可能在多个块上,这就引出下面的BVH Bounding

10710

Python模块:tkinter

最近同学在做一个聊天程序,服务器已经全部完成了,客户端已经使用CMD版本进行过测试了,为了做好一点,需要弄一个图形用户界面的客户端,Python编写图形界面的模块有好多,这里使用是Python...首先来大概看一下tkinter描述,依旧是先导入然后使用使用help查看,如图所示。 ? 稍微翻译一下DESCRIPTION下面那几段。 Tkinter模块提供允许显示,位置安排和控制控件类。...有些人就觉得见鬼了,既然tkinter是包,包就是文件夹,在其中必须有一个__init__.py,为什么还可以from tkinter import Tk?这个Tk类到地方在哪里?...这里登陆成功后直接跳转到聊天客户端界面,下面我们就来编写聊天客户端界面。 这个不难,我们需要一个控件用来设置发送数据,这个控件就是一个单行文本框。...,可是有些用户并不是通过这种方式退出,然后点击右上角×来关闭,因为在点击×之后,没有发送logout命令到服务器,服务器并不会删除这个连接,为了确保在这种情况下,连接资源被释放,我们可以做一个回调,

2.1K20

面试官问你“有什么问题问我吗?”,你该如何回答?

除非你和另外一个人在能力上相同,但是只能在你们两个人中选一个,那么这个问题才对你能不能拿到offer至关重要。有准备总比没准备好,给面试官留一个好影响总归是没错。...除此之外,不要问太Low问题,会显得你整个人格局比较小或者说你根本没有准备(侧面反映你对这家公司不伤心,既然你上心,为什么要要你呢)。...这个岗位为什么还在招人? (岗位真实性和价值咨询) 大概什么时候能给我回复呢? (面的时候,如果面试官没有说的话,可以问一下) .........来个补充,顺便送个祝福给大家 薪酬待遇和相关福利问题一般在面的时候(最好不要在前面几面的时候就问到这个问题),面试官会提出来或者在面试完之后以邮件形式告知你。...每个人都有每个人难处。引用一句《阿甘正传》里面的台词:“生活就像一巧克力,你永远不知道下一块是什么味道“。

73040

brainfuck 语言入门

brainfuck 语言入门     介绍brainfuck这个语言了,没听说过相信你不会找到这篇文章,或者你去google. 图灵机相信大家都听说过(我们导论课讲过),有些人还写过相关程序。...觉得brainfuck和图灵机编程类似,下面转一篇别人写比较易懂教程给你们这些好奇同学学习。...写 , 读 然后找一张方格纸,对就是小学作文本那种,一支铅笔(,钢笔不行,Lamy 不行),一块橡皮,一张从你旧 C 语言书上撕下来 ASCII 码表。 ...嗯你盯着它看就行了,什么都不用做  左:向左移动一个格子  上:给格子里数字加上 1,擦掉原来数字再写回去。现在你知道为什么要用铅笔了吧,少年! ...……不要这么没有下限好不好)  :如果当前格子里数字为 0,就跳过,否则回头到「始」那里  写:查当前格子里数字在 ASCII 表上对应字母,把它写下来(,别写在格子里,就写在你买来一直立志想用但是没有用日记本上吧

89821
领券