【求教 探讨】python tkinter的messagebox

【求教 探讨】python tkinter的messagebox,第1张

概述最近有一个要求,用python的tkinter制作一个messagebox,传入3个参数: title  text timeout。用户可以点击“确定” 关闭窗口;  或者 等待几秒(timeout) 窗口自动关闭;   一开始 我选择tkinter原生的messagebox,代码如下: from tkinter import messagebox, Tk root = Tk()root.wi

最近有一个要求,用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 timeimport threadingimport redef 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的messagebox所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1190550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存