【求教 探讨】python tkinter的messagebox
发布时间:2020-12-20 10:17:08 所属栏目:Python 来源:网络整理
导读:最近有一个要求,用python的tkinter制作一个messagebox,传入3个参数: title? text timeout。用户可以点击“确定” 关闭窗口;? 或者 等待几秒(timeout) 窗口自动关闭; ? 一开始 我选择tkinter原生的messagebox,代码如下: from tkinter import message
最近有一个要求,用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})","1n",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的人 可以给出宝贵意见。 ? 多谢~ (欢迎交流) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |