【求教 探讨】python tkinter的messagebox
最近有一个要求,用python的tkinter制作一个messagebox,传入3个参数: title text timeout。用户可以点击“确定” 关闭窗口; 或者 等待几秒(timeout) 窗口自动关闭;

一开始 我选择tkinter原生的messagebox,代码如下:
from tkinter import messagebox, Tk
root = Tk()
root.withdraw()
root.wm_attributes('-topmost', 1) messagebox.showinfo(title, text)
但原生的messagebox不支持timeout。。。 只能放弃。(如果有谁知道解决办法,请评论~ 多谢。。。)
所以 我自己写了个窗口,代码也很简单。 但还是没实现timeout功能··· (哭泣,求助)
# -*- coding:utf-8 -*-
import tkinter as tk # 导入tkinter模块
import time
import threading
import re def center_window(root, width, height): # 窗口居中
screenwidth = root.winfo_screenwidth()
screenheight = root.winfo_screenheight()
size = '%dx%d+%d+%d' % (width, height, (screenwidth - width)/2, (screenheight - height)/2)
root.geometry(size) def msg_box(title="Info", text="text", width=330, height=100):
window = tk.Tk() # 主窗口
window["bg"] = "white"
window.wm_attributes('-topmost', 1) # 窗口置顶
window.title(title) # 窗口标题
center_window(window, width=width, height=height) # 窗口 置于屏幕中央
#text = re.sub(r"(.{20})", "\\1\n", text)
l = tk.Label(window, text=text, width=40, height=3, font=('Arial', 12), bg="white", relief="flat")
l.pack()
b = tk.Button(window, text='退出', command=window.quit, width=5, relief="groove", bg="white")
b.pack(side='bottom', anchor="s")
def auto_close():
for i in range(30):
time.sleep(1)
print(i)
window.destroy()
t = threading.Thread(target=auto_close, daemon=True)
t.start()
# def fun_timer():
# global timer
# window.destroy()
# timer.cancel()
# timer = threading.Timer(15, fun_timer)
# timer.start()
window.mainloop() # 循环消息,让窗口活跃 if __name__ == '__main__':
# text = ""
# text = "1"
# text = "12345"
# text = "123456789"
# text = "你好"
# text = "这是五个字"
text = "落霞与孤鹭齐飞,秋水共长天一色"
# text = "123456789abcdefghijklmn" for i in "abc":
time.sleep(1)
print(i) msg_box(text=text) for i in "正在等待最终结果":
time.sleep(1)
print(i)
如果感兴趣,大家可以运行这段代码,就知道存在什么问题了。。。
也希望 如果有对GUI编程懂得人或是了解tkinter的人 可以给出宝贵意见。
多谢~ (欢迎交流)
【求教 探讨】python tkinter的messagebox的更多相关文章
- Python Tkinter 学习成果:点歌软件music
笔者工作业余时间也没什么爱好,社交圈子也小,主要娱乐就是背着自己带电瓶的卖唱音响到住地附近找个人多的位置唱唱KtV. 硬件上点歌就用笔记本电脑,歌曲都是网上下载的mkv格式的含有两个音轨的视频.因此点 ...
- python -Tkinter 实现一个小计算器功能
文章来源:http://www.cnblogs.com/Skyyj/p/6618739.html 本代码是基于python 2.7的 如果是对于python3.X 则需要将 tkinter 改为Tk ...
- python Tkinter之Button
Button小部件是一个标准的Tkinter的部件,用于实现各种按钮.按钮可以包含文本或图像,您可以调用Python函数或方法用于每个按钮. Tkinter的按钮被按下时,会自动调用该函数或方法. 该 ...
- python gui tkinter快速入门教程 | python tkinter tutorial
本文首发于个人博客https://kezunlin.me/post/d5c57f56/,欢迎阅读最新内容! python tkinter tutorial Guide main ui messageb ...
- Python tkinter 实现简单登陆注册 基于B/S三层体系结构,实现用户身份验证
Python tkinter 实现简单登陆注册 最终效果 开始界面 注册 登陆 源码 login.py # encoding=utf-8 from tkinter import * from ...
- python tkinter实现俄罗斯方块 基础版
本项目最终效果见本人b站投稿av81480858 简介部分 本项目最终代码已上传github: https://github.com/BigShuang/Tetris 的1_BASIC文件夹 .其中1 ...
- Python Tkinter基础控件入门实例
分享一个Python Tkinter基础控件用法的入门例子,包括窗口的显示.显示内置图片.弹出窗口.菜单等. 例子,Python Tkinter基础控件的用法 # -*- coding: utf-8 ...
- Python Tkinter Entry(文本框)
Python学习记录--关于Tkinter Entry(文本框)的选项.方法说明,以及一些示例. 属性(Options) background(bg) borderwidth(bd) cursor e ...
- python tkinter Listbox用法
python tkinter组件的Listbox的用法,见下面代码的演示: from tkinter import * root=Tk() v=StringVar() #Listbox与变量绑定' l ...
随机推荐
- BZOJ 4898 Luogu P3778 [APIO2017]商旅 (分数规划、最短路)
题目链接: (bzoj)https://www.lydsy.com/JudgeOnline/problem.php?id=4898 (luogu)https://www.luogu.org/probl ...
- Oracle用户被锁解决方法
.查看用户的proifle是哪个,一般是default: sql>SELECT username,PROFILE FROM dba_users; .查看指定概要文件(如default)的密码有效 ...
- Leetcode题目169.求众数(简单)
题目描述: 给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. 示例 1: 输入: [3,2,3] ...
- sql 同一张表查询不同数据合并之后关联查询
SELECT t.articleId articleId, comments.`comments` parentComment, t.commentId commentsId, comments.`i ...
- TIZ_c 第0周总结(2019/10/15-2019/10/22)工欲善其事必先利其器
TIZ_c 第0周总结(2019/10/15-2019/10/22)工欲善其事必先利其器 任务清单 给自己取一个酷酷的id,并选择1-2个喜欢的方向.(只是初步选择,后期可更改) 改下群名片.例如yo ...
- Mac系统下,docker安装nextcloud,打造个人本地网盘
1.安装docker 推荐下载地址:http://get.daocloud.io/#install-docker-for-mac-windows 2.拉取镜像 $ docker pull next ...
- CentOS linux7 磁盘分区
常用命令 df [选项] [文件] -a 显示全部文件系统 -h 方便阅读方式显示 -l 只显示本地文件系统 -T 显示文件系统类型 fdisk /dev/sda1
- Django之通用视图
01-介绍 通用视图把视图开发中常用的写法和模式抽象出来,让你编写少量代码就能快速实现常见的数据视图.显示对象列表就是这样一种任务. Django 自带的通用视图能实现下述功能: 1.列出对象并显示单 ...
- NoSQL的种类
https://www.zhihu.com/question/30219620
- Linux文档中翻页和搜索关键字
按键 进行工作空格键 向下翻一页[Page Down] 向下翻一页[Page Up] 向上翻一页[Ctrl + U] 向上翻一页[Ctrl + D] 向下翻一页/string 向下搜寻string这个 ...