GUI启动后如何运行功能?

时间:2017-06-28 13:36:04

标签: python-3.x tkinter ttk

只要tkinter GUI可用,我就需要运行检查功能。我尝试使用以下代码,但出现的Messagebox没有响应,我无法按下OK按钮。

import tkinter.messagebox as mbox
import tkinter
from tkinter import ttk



class MQ(ttk.Frame):
    def __init__(self, parent, *args, **kwargs):
        ttk.Frame.__init__(self, parent, *args, **kwargs)

        self.root = parent
        self.init_gui()
        if mycheck=True:
            mbox.showinfo("Title","message")

...
...
if __name__ == '__main__':
    root = tkinter.Tk()
    MQ(root)
    root.mainloop()

1 个答案:

答案 0 :(得分:2)

您可以在GUI启动后立即使用after_idle运行某些内容,或者您​​可以使用after在短时间内运行它。关于代码是否在显示根窗口之前或之后运行(这可能取决于平台;我不确定),两者的行为略有不同

import tkinter as tk
from tkinter import messagebox

def say_hello(root, message):
    tk.messagebox.showinfo("Info", message)

root = tk.Tk()
root.after(1, say_hello, root, "Hello, world")

root.mainloop()