如何在 GUI 启动后立即 运行 一个函数?
How to run a function as soon as GUI started?
只要 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()
您可以在 GUI 启动后立即使用 after_idle
到 运行 某些东西,或者您可以使用 after
在短暂的一段时间后将它 运行时间。关于显示根 window 之前或之后的代码 运行s,两者的行为略有不同(这可能取决于平台;我不确定)
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()
只要 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()
您可以在 GUI 启动后立即使用 after_idle
到 运行 某些东西,或者您可以使用 after
在短暂的一段时间后将它 运行时间。关于显示根 window 之前或之后的代码 运行s,两者的行为略有不同(这可能取决于平台;我不确定)
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()