python tkinter的messagebox能否调整大小或添加滚动条?如何调?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python tkinter的messagebox能否调整大小或添加滚动条?如何调?相关的知识,希望对你有一定的参考价值。

求代码!谢谢!

参考技术A 你好,tkinter的
messagebox
是不可以调整大小的。如果你需要的话,你可以换其他的来实现,下面是一个例子。
from
tkinter
import
*
#If
you
get
an
error
here,
try
Tkinter
not
tkinter
def
Dialog1Display():
Dialog1
=
Toplevel(height=100,
width=100)
#Here
def
Dialog2Display():
Dialog2
=
Toplevel(height=1000,
width=1000)
#Here
master=Tk()
Button1
=
Button(master,
text="Small",
command=Dialog1Display)
Button2
=
Button(master,
text="Big",
command=Dialog2Display)
Button1.pack()
Button2.pack()
master.mainloop()

求教 探讨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
", 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能否调整大小或添加滚动条?如何调?的主要内容,如果未能解决你的问题,请参考以下文章

python2.#与python3.#下tkinter 的simpledialog,messagebox

python--DenyHttp项目--GUI:tkinter? module 'tkinter' has no attribute 'messagebox'

Python:GUI之tkinter学习笔记之messageboxfiledialog

python tkinter-消息框对话框

python之tkinter库弹窗messagebox

python之tkinter库弹窗messagebox