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

仅当使用.exe从Tkinter关闭主窗口时,绘图才会显示

问题描述: 当使用.exe从Tkinter关闭主窗口时,绘图才会显示。

回答: 在Tkinter中,当使用.exe文件运行Python程序时,关闭主窗口后,绘图可能不会立即显示。这是因为.exe文件在Windows操作系统中以独立的进程运行,而绘图通常是在主线程中进行的。当关闭主窗口时,主线程可能会被终止,导致绘图无法完成。

为了解决这个问题,可以尝试以下方法:

  1. 使用Tkinter的after方法延迟关闭主窗口:可以在关闭主窗口之前添加一个延迟操作,让绘图有足够的时间完成。例如,可以使用after方法延迟几百毫秒后再关闭主窗口。
代码语言:txt
复制
import tkinter as tk

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

root = tk.Tk()

# 添加关闭按钮
close_button = tk.Button(root, text="关闭", command=close_window)
close_button.pack()

# 绘图操作
# ...

# 延迟关闭主窗口
root.after(500, close_window)

root.mainloop()
  1. 使用root.protocol方法设置关闭窗口的回调函数:可以使用root.protocol方法设置关闭窗口时的回调函数,确保在关闭主窗口之前完成绘图操作。
代码语言:txt
复制
import tkinter as tk

def close_window():
    # 绘图操作
    # ...

    # 关闭主窗口
    root.destroy()

root = tk.Tk()

# 设置关闭窗口的回调函数
root.protocol("WM_DELETE_WINDOW", close_window)

root.mainloop()

这些方法可以确保在关闭主窗口时,绘图能够显示出来。请注意,以上方法仅适用于使用.exe文件运行Tkinter程序的情况。如果使用其他方式运行程序,可能需要采用不同的解决方案。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):提供弹性计算能力,满足各种规模的业务需求。详情请参考:腾讯云云服务器
  • 腾讯云容器服务(TKE):提供高度可扩展的容器化应用管理平台,简化容器部署和管理。详情请参考:腾讯云容器服务
  • 腾讯云云数据库 MySQL 版:提供高性能、可扩展的云数据库服务,适用于各种规模的应用。详情请参考:腾讯云云数据库 MySQL 版
  • 腾讯云人工智能平台(AI Lab):提供丰富的人工智能服务和开发工具,帮助开发者构建智能化应用。详情请参考:腾讯云人工智能平台
  • 腾讯云物联网平台(IoT Explorer):提供全面的物联网解决方案,帮助连接和管理物联网设备。详情请参考:腾讯云物联网平台
  • 腾讯云移动应用分析(MTA):提供全面的移动应用数据分析服务,帮助开发者了解用户行为和应用性能。详情请参考:腾讯云移动应用分析
  • 腾讯云对象存储(COS):提供安全可靠的云端存储服务,适用于各种数据存储和备份需求。详情请参考:腾讯云对象存储
  • 腾讯云区块链服务(BCS):提供高性能、可扩展的区块链服务,帮助构建可信赖的区块链应用。详情请参考:腾讯云区块链服务
  • 腾讯云虚拟专用网络(VPC):提供安全隔离的虚拟网络环境,帮助构建复杂的网络架构。详情请参考:腾讯云虚拟专用网络

以上是关于使用.exe从Tkinter关闭主窗口时绘图显示的解决方法和腾讯云相关产品的介绍。希望对您有帮助!

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

相关·内容

Python中tkinter模块的常用参数总结

1、使用tkinter.Tk() 生成窗口(root=tkinter.Tk())root.title('标题名')      修改框体的名字,也可在创建使用className参数来命名;root.resizable...()root.update()      刷新页面;2、初级样例import tkinterroot=tkinter.Tk() #生成root窗口label=tkinter.Label(...: 组件相对于窗口的宽度,0-1; relheight:  组件相对于窗口的高度,0-1;5、使用tkinter.Button控制按钮的参数anchor:     ...;Destroy      组件被销毁触发;Expose      组件被遮挡状态中暴露出来时触发;Unmap       组件由显示状态变为隐藏状态触发...;Map      组件由隐藏状态变为显示状态触发;FocusIn       组件获得焦点触发;FocusOut       组件失去焦点触发

77830

matplotlib 与 tkinter 集成小案例 (上篇)

matplotlib 是绘图界最通用的库,功能强大,与其他系统集成友好,比如Python内置的绘图模块tkinter,这篇文章的主要目标:实现一个使用tkinter集成matplotlib交互绘图案例。...此案例,创建tkinter窗口及组件的代码,如下: window = tk.Tk() # 第2步,给窗口的可视化起名字 window.title('My Window') # 第3步,设定窗口的大小...然后创建一个frame对象,在里面,再填充2个frame对象,一个位于左侧,另一个位于右侧: # 第二层frame,左frame,长在frame上 frame_l = tk.Frame(frame)...组件)关系的建立,第二行使用集成后的对象中的draw方法绘图,最后拿到tkinter组件并组装到tkinter中。...交互部分,选中Radiobutton中bar选项后,显示柱状图: ? 选中pie选项显示饼状图: ? 当选中both选项后,恢复全部显示

2K30

python tkinter 设计指南

# 窗口 root_window.title('C语言中文网:c.biancheng.net') # 窗口名字 root_window.mainloop() #开启循环,让窗口处于显示状态 文字和关闭按钮...() 设定窗口的大小以及位置,参数值为 None 表示获取窗口的大小和位置信息。...window.quit() 关闭当前窗口 window.update() 刷新当前窗口 window.mainloop() 设置窗口循环,使窗口循环显示(一直显示,指导窗口关闭) window.iconbitmap...) # 关闭窗口 # Tkinter 使用 WM_DELETE_WINDOW 协议与窗口进行交互 # 则 Tkinter 窗口右上角 x 号的关闭功能失效, # 也就是无法通过点击 x 来关闭窗口...,比如当鼠标离开输入框的时候 控件的发生改变的时候触发事件,比如调整了控件的大小等 控件的状态“激活”变为“未激活”触发事件 控件被销毁的时候触发执行事件的函数 窗口或组件的某部分不再被覆盖的时候触发事件

6.7K30

Python3中tkinter模块使用方法详解

aland-1415/p/6849193.html  1、使用tkinter.Tk() 生成窗口(root=tkinter.Tk()); root.title('标题名')         修改框体的名字...:  1 import tkinter 2 root=tkinter.Tk() #生成root窗口 3 label=tkinter.Label(root,text='Hello,GUI') #生成标签...;     relwidth:       组件相对于窗口的宽度,0-1;     relheight:     组件相对于窗口的高度,0-1;   5、使用tkinter.Button控制按钮的参数...组件由可用转变为不可用时触发;     Destroy              组件被销毁触发;     Expose              组件被遮挡状态中暴露出来时触发;     Unmap...              组件由显示状态变为隐藏状态触发;     Map                  组件由隐藏状态变为显示状态触发;     FocusIn

4.4K21

pyqt5之简单窗口的创建

,之前用tkinter写了一个简单的python入门教程的exe,基本都是面向过程的编程思想, 很少将函数式编程思想和面向对象的思想,在学习pyqt5的过程中,希望培养面向对象编程的思想!...QtGui 模块包含的类用于窗口化的系统结构,事件处理,2D绘图,基本图形,字体和文本。 QtWidgets 模块包含的类提供了一套UI元素来创建经典桌面风格用户界面。...见例子 四.关闭窗口 QPushButton(string text, QWidget parent = None) text参数是将显示在按钮中的内容。...QApplication(sys.argv) # 所有pyqt5必须创建一个QApplication对象 15 16 w = QWidget() # 没有父类的widget将被作为窗口使用...22 # 循环用于接收来自窗口触发的事件,并且转发他们到widget应用上处理。 23 # 如果我们调用exit()方法或widget组件被销毁,循环将退出。

1.7K20

Matplotlib 中文用户指南 7.2 Python shell 中使用 Matplotlib

ipython 在运行命令期间关闭交互模式,然后在运行结束恢复交互状态,以便你可以手动继续调整图形。...有了 TkAgg 后端,它使用 Tkinter 用户界面工具包,你可以任意的非 gui python shell 使用 matplotlib。...Gui shell 问题最多,因为它们必须运行循环,但是交互式绘图也涉及循环。 Ipython 已经为 matplotlib 后端解决了这一切问题。...如果interactive是False,那么每个plot命令都会更新图形状态,但只会在显式调用draw()绘制。 interactive为True,每个pyplot命令都会触发绘制。...处理绘图开销很大的大型图形,你可能希望临时关闭 matplotlib 的交互式设置来避免性能损失: >>> #create big-expensive-figure >>> ioff()

1.2K20

软件测试|超好用超简单的Python GUI库——tkinter(二)

由此我们知道,窗口是一切控件的基础,所有的控件的都需要通过窗口显示Tkinter 提供了一些关于窗口对象的常用方法,本文中将对这些方法做简单的介绍。...(0,0)或者resizable(False,False)不可更改window.geometry()设定窗口的大小以及位置,参数值为 None 表示获取窗口的大小和位置信息。...window.quit()关闭当前窗口window.update()刷新当前窗口window.mainloop()设置窗口循环,使窗口循环显示(一直显示,指导窗口关闭)window.iconbitmap... Tkinter 使用 WM_DELETE_WINDOW 协议与窗口进行交互Tkinter 窗口右上角x号的关闭功能失效,也就是无法通过点击x来关闭窗口,而是转变成调用用户自定义的函数。...+-2000')设置了一个超过屏幕的负参数值窗口会被移动至“屏幕之外”,此时就看不到窗口了,这也是隐藏窗口的一种方法。

2.6K30

Python 之 tkinter 学习笔记

x 高度 + x偏移 + y偏移) window.geometry('500x300+500+300') # 窗口循环显示 window.mainloop() 代码很简单,也不难理解,效果如下:...当你点击按钮,得不到任何响应,熟悉 GUI 编程的都知道控件都需要一个响应函数,让我们在点击按钮得到反馈。 具体实现起来也很简单,我们只需要额外定义一个函数,将控件与这个函数绑定即可。...window.mainloop() 效果如下: Canvas 画布 Canvas,提供绘图功能,提供的图形组件包括:线形, 圆形, 图片… 类似的,我们使用如下命令创建一个 Canvas 实例,为了明显...window.config(menu=menubar) # 窗口循环显示 window.mainloop() 效果如下: 添加子窗口 很多情况下,一个窗口往往不足以展示我们需要的全部信息,因此这时候我们可以创建子窗口...目前比较常见的打包 exe 方法都是通过 pyinstaller 来实现的,使用安装命令进行安装: pip install pyinstaller pyinstaller 打包 exe 进入命令行界面,

7K20

Tkinter教程(每天半小时,3天彻底掌握Tkinter)day1

自带的标准库模块,您安装好 Python 后,就可以直接使用它,而无须另行安装。...() 是否允许用户拉伸窗口大小,默认为可更改,设置为 resizable(0,0)或者resizable(False,False)不可更改 window.geometry() 设定窗口的大小以及位置...,参数值为 None 表示获取窗口的大小和位置信息。...window.quit() 关闭当前窗口 window.update() 刷新当前窗口 window.mainloop() 设置窗口循环,使窗口循环显示(一直显示,指导窗口关闭) window.iconbitmap...() 刷新屏幕,否则返回值为1 window.protocol("协议名",回调函数) 启用协议处理机制,常用协议有 WN_DELETE_WINDOW,当用户点击关闭窗口窗口不会关闭,而是触发回调函数

5.2K20

python GUI界面设计的那些事(二)

以及turtle 的绘图窗口都是使用 tkinter 实现的。 ? ---- 平常使用时,只需要掌握基本的输入控件(单行文本框,多行文本框), ?...输出显示控件(标签控件,列表框控件,消息弹窗) ? ? ? 以及按钮控件的基本使用,就能够解决绝大多数的界面设计了。 ?...---- 常见控件的基本使用方法: 显示窗口 from tkinter import * # 1.创建一个窗口 root = Tk() # 2.添加标题 root.title("标题") # 3....world") # 6.使用pack布局显示 label.pack() # 7.程序一直循环,直到我们关闭窗口 root.mainloop() ?...---- 其它控显示和联动原理都类似,这里就不一一介绍了,感兴趣可以自己看我之前写的tkinter 的课程(讲了基本控件的使用以及布局等各种方法)。

3.2K20

Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解

tkinter使用: 1.模块的导入 [tkinter是python默认的gui库,所以一般不需要另外安装模块]:from tkinter import * 2.使用: 创建窗口:root...,也可以是其他的显示方式,比如grid,后面介绍】 让窗口持续显示:root.mainloop() 3.控件介绍: 窗口Tk[所有控件都需要附着在界面上]: 介绍:窗口是所有控件附着的基础...,所有控件都需要附着在界面上,如果程序中没有指定控件附着的窗口,将默认附着到窗口Tk中,如果程序中没有定义Tk,那么将自动创建一个 常见属性【想要初始化窗口的属性需要使用 窗口对象.属性(“参数”...参数设置:可用参数参考下面的,用法参考Tk的 Toplevel是一个子窗口,窗口关闭窗口关闭,但子窗口关闭窗口关闭 Valid resource names: background,...,只有添加其他的菜单,才会了实际的意义 要想显示菜单,必须在“要添加菜单的窗口对象”的config中允许添加上“菜单对象” ?

9.5K10

python笔记:可视化界面写作尝试

他有点像是使用matplotlib进行绘图的方式,首先创建一个基础画布(基础的窗口),然后定义不同的绘图曲线(窗口插件),然后将定义的曲线(窗口插件)放置到画布(窗口)上进行显示。...因此,这里,我们先使用一个简单的显示窗口来走一遍整个流程,介绍一下窗口创建的流程以及插件安放的方法。 1. 可视化界面的创建 这里,我们给出基于tkinter写作可视化界面的最基础代码如下。...上面,事实上我们已经使用过了,tkinter中的显示窗口定义方式就是实例化一个Label类。...,就会触发行为函数fn,需要注意的是,他的行为发生方式为下沿触发,即点击被释放,触发行为函数。...不过总体而言事实上感觉是有点累赘的,毕竟tkinter这个库真心就只适合做做简单的窗口写作,不适合用于真正大规模的复杂窗口界面写作当中(大约也就是因为这个原因,官网的文档才会如此坑爹吧)。

4.5K30

80 行 Python 代码写个图形计算器

↑ 关注 + 星标 ,每天学Python新技能 01 实现 我们几乎每个人都用过计算器,大家对于计算器应该都是比较熟悉的,计算器整体也是比较简单的,主要包括:显示器、键盘、运算的逻辑处理等,计算器的图形界面我们使用...首先,我们画一个窗口,代码实现如下: # 创建窗口 tk = tkinter.Tk() # 设置窗口大小和位置 tk.geometry('300x210+500+200') # 不允许改变窗口大小...02 打包 为了更加方便的使用,我们可以将 Python 代码打包成 exe 文件,打包我们使用 pyinstaller,安装用 pip install pyinstaller 命令即可。...打包我们使用 pyinstaller --onefile --nowindowed counter.py 命令即可,此时打包生成的文件是使用的默认图标,如果我们想指定自己的图标可以添加参数 --icon...此时,我们直接运行 exe 文件就行了。 03 总结 本文我们使用 Python 实现了一个简易的计算器,大家如果有兴趣的话,可以尝试添加更多的功能以及对键盘进行个性化修改。

2.5K20

python GUI计算器的实现

参考链接: Python | 使用Tkinter的简单GUI计算器 01 实现  我们几乎每个人都用过计算器,大家对于计算器应该都是比较熟悉的,计算器整体也是比较简单的,主要包括:显示器、键盘、运算的逻辑处理等...首先,我们画一个窗口,代码实现如下:  1 2 3 4 5 6 7 8 # 创建窗口 tk = tkinter.Tk() # 设置窗口大小和位置 tk.geometry('300x210+500+200...') # 不允许改变窗口大小 tk.resizable(False, False) # 设置窗口标题 tk.title('计算器') 看一下效果:  我们接着画显示器,代码实现如下:  1 2 3 4...02 打包  为了更加方便的使用,我们可以将 Python 代码打包成 exe 文件,打包我们使用 pyinstaller,安装用 pip install pyinstaller 命令即可。 ...打包我们使用 pyinstaller --onefile --nowindowed counter.py 命令即可,此时打包生成的文件是使用的默认图标,如果我们想指定自己的图标可以添加参数 --icon

1.3K60

tkinter系列 第八课 Listbox窗口部件 】

创建一个列表框 代码: from tkinter import *import tkinter.messagebox#创建一个窗口root = Tk()# 创建 宽400高250的窗口 x是小写的英文字符...代码: from tkinter import *import tkinter.messagebox#创建一个窗口root = Tk()# 创建 宽400高250的窗口 x是小写的英文字符root.geometry...删除值 删除使用delete(first,last)方法 代码: from tkinter import *import tkinter.messagebox#创建一个窗口root = Tk()# 创建...代码: from tkinter import *import tkinter.messagebox#创建一个窗口root = Tk()# 创建 宽400高250的窗口 x是小写的英文字符root.geometry...使用 MULTIPLE 来获得“检查表”行为,当用户通常只选择一个项目,但有时希望选择一个或多个项目范围使用 EXTENDED。

1.9K20

tkinter系列 第七课 Scale部件 】

显示控件 代码: from tkinter import * import tkinter.messagebox #创建一个窗口 root = Tk() # 创建 宽400高250的窗口 x是小写的英文字符...第一步:部件布局 代码: from tkinter import * import tkinter.messagebox #创建一个窗口 root = Tk() # 创建 宽400高250的窗口 x是小写的英文字符...第二步:给控件添加一个方法 代码: from tkinter import * import tkinter.messagebox #创建一个窗口 root = Tk() # 创建 宽400高250的窗口...实际上Scale部件绑定方法是会默认将当前的 刻度值传递到函数里面去的,并且它的数据类型是字符类型的,具体可以使用type来打印查看一下。 ?...第三步:改变文字大小 代码: from tkinter import * import tkinter.messagebox #创建一个窗口 root = Tk() # 创建 宽400高250的窗口

2.3K10

Python+Tkinter 图形化界面基础篇:添加图形和图像

步骤1:导入 Tkinter 首先,导入 Tkinter 库: import tkinter as tk 步骤2:创建窗口 创建一个 Tkinter 窗口: root = tk.Tk() root.title...步骤5:启动主事件循环 最后,启动 Tkinter 的主事件循环以显示窗口和 Canvas : root.mainloop() 现在,当你运行这个应用程序时,你将看到一个窗口中包含不同类型的图形元素...步骤1:导入必要的模块 首先,导入必要的模块: import tkinter as tk from PIL import Image, ImageTk 步骤2:创建窗口 创建一个 Tkinter 窗口...() 效果图: 现在,当你运行这个应用程序时,你将看到一个窗口显示了图像文件。...结论 添加图形元素和显示图像是图形化界面开发中的重要部分。无论是创建绘图应用程序还是显示产品图片,你都可以使用 Tkinter 和 Pillow 库轻松实现这些功能。

98210
领券