python中showinfo_python – Tkinter中的非阻塞信息对话框
我需要一个简单的信息框来显示一些状态输出,我可以使用print将其转储到控制台.我找到的最简单的可能性如下:
import Tkinter as tk
root = tk.Tk()
root.withdraw()
from tkMessageBox import showinfo
showinfo('some caption', 'some info')
这个实现的唯一问题是我的程序(不是在Tkinter中编写)将不会继续运行,直到按下showinfo消息框的’ok’按钮.也就是说,showinfo对话框将被阻止.
因此我的问题是:是否有一种简单的方法可以使showinfo无阻塞? Tkinter中是否存在非阻塞的备用消息框实现?我可以想到显示帮助页面的典型用例 – 窗口应该打开,主程序继续正常运行.
EDIT1:这是我提出的一个简单的帮助窗口,但不幸的是它没有显示,除非我启动了另一个tkMessageBox或类似的对象:
class TextInfo(object):
def __init__(self, parent, window_title = 'window', textfield = 'a text field', label = None):
self.top = tk.Toplevel(parent)
self.parent = parent
self.window_title = window_title
self.textfield = textfield
# set window title
if window_title:
self.top.title(window_title)
# add label if given
if label:
tk.Label(self.top, text=window_title).grid(row=0)
# create the text field
self.textField = tk.Text(self.top, width=80, height=20, wrap=tk.NONE)
if textfield:
self.textField.insert(1.0, textfield)
self.textField.grid(row=1)
# create the ok button
b = tk.Button(self.top, text="OK", command=self.ok)
b.grid(row=2)
def ok(self):
self.top.destroy()
这就是我打电话给窗口的方式:
root = tk.Tk()
root.withdraw()
TextInfo(self.root, window_title, textfield, label)
# don't call root.mainloop() here, because this will lead to blocking.
是否需要为窗口设置某种属性或事件?如果我调用root.mainloop(),窗口将显示,但然后我的GUI再次被阻止.
最佳答案 不要使用tkMessageBox,因为它不允许太多配置.只需创建一个看起来像一个的自定义对话框.这篇
page讲述了很多关于创建自定义Tkinter对话框的内容.
python中showinfo_python – Tkinter中的非阻塞信息对话框相关推荐
- python stdout.read()阻塞_通过阅读python subprocess源码尝试实现非阻塞读取stdout以及非阻塞wait...
http://blog.chinaunix.net/uid-23504396-id-4661783.html 执行subprocess的时候,执行不是问题 最麻烦的是获取进程执行后的回显来确认是否正确 ...
- Java中如何使用非阻塞异步编程——CompletableFuture
分享一波:程序员赚外快-必看的巅峰干货 对于Node开发者来说,非阻塞异步编程是他们引以为傲的地方.而在JDK8中,也引入了非阻塞异步编程的概念.所谓非阻塞异步编程,就是一种不需要等待返回结果的多线程 ...
- python label显示图片_python 实现在tkinter中动态显示label图片的方法
在编程中我们往往会希望能够实现这样的操作:点击Button,选择了图片,然后在窗口中的Label处显示选到的图片.那么这时候就需要如下代码: from tkinter import * from tk ...
- JAVA 中IO总结 之前篇阻塞、非阻塞
最近总结JAVA中的IO,遇到了有关阻塞.非阻塞.同步.异步的概念,之前也做个内核有关开发,今天温故而知新. Linux支持同步IO,也支持异步IO,因此分为同步阻塞.同步非阻塞,异步阻塞,异步非阻塞 ...
- Linux C/C++网络编程实战-陈硕-笔记20-使用非阻塞IO
基于IO复用(非阻塞IO)实现的 netcat 使用非阻塞IO可以有效避免上述情况的发生.但非阻塞IO在编程上要比阻塞IO更难,并且在程序的维护上比较痛苦.一般使用非阻塞IO编程时建议使用一些封装好的 ...
- Linux下同步模式、异步模式、阻塞调用、非阻塞调用总结
同步和异步:与消息的通知机制有关. 本质区别 现实例子 同步模式 由处理消息者自己去等待消息是否被触发 我去银行办理业务,选择排队等,排到头了就办理. 异步模式 由触发机制来通知处理消息者 我去银行办 ...
- struct用法_精讲响应式webclient第1篇-响应式非阻塞IO与基础用法
笔者在之前已经写了一系列的关于RestTemplate的文章,如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用 精讲RestTemplate第2篇-多种底层HT ...
- stm32 hal uart_STM32 非阻塞HAL_UART_Receive_IT解析与实际应用
本文章主要探讨如何使用STM32中HAL库的UART_Receive_IT非阻塞接收数据.其他网络教程(包括正点原点相关教程)可能个人原因无法完全理解,苦苦挣扎后才完成非阻塞UART接收. 希望可以通 ...
- php协程实现mysql异步_swoole与php协程实现异步非阻塞IO开发
"协程可以在遇到阻塞的时候中断主动让渡资源,调度程序选择其他的协程运行.从而实现非阻塞IO" 然而php是不支持原生协程的,遇到阻塞时如不交由异步进程来执行是没有任何意义的,代码还 ...
最新文章
- 【linux】printf在终端打印彩色hello world
- linux 内核 出错-HP 方案
- python爬虫教程下载-Python爬虫视频教程全集下载
- 【深度学习】CUDA 和 TensorRT 博客搜集
- (转)使用json-lib 数据格式转换
- [2021-09-09 T2] 就差⼀点——冒泡排序和反序表之间不为人知的秘密
- MATLAB中simulink的模糊PID控制
- html 样式 tab键 空格,设置Visual Studio2013的TAB键为4个空格
- window7 安装grldr
- Python字符串| min()
- 2020计算机考研英语国家线,2020考研英语国家分数线?
- a simplest example of sql select used in excel vba
- Python-TypeError:takes no arguments
- python中字符串如何新增元素_python向字符串中添加元素的实例方法
- 将QTextEdit右键菜单设置为中文
- 怎么用U盘制作原版系统启动盘
- nmap 安装和使用
- 【转】2007最牛X网站收集,有些网站蛮有意思
- 在H5页面中使用Google Analytics
- 区块链学习笔记21——ETH智能合约
热门文章
- 教你如何用手机查看哪些人在蹭你家的WIFI,然后将他们屏蔽!
- 存储管理之页式、段式、段页式存储
- android studio 导入第三方库的记录
- CSharpGL(23)用ComputeShader实现一个简单的ParticleSimulator
- 点击模型:达观数据提升算法精度的利器
- 让人期待的2011年度最佳 jQuery 插件发布啦
- CSS各种选择符的优先级
- python切割时间数据_按小时Python分割时间
- java scanner类int_Java之 Scanner类
- ext js ajax表单校验,Extjs之grid单元格编辑校验(示例代码)