Python 3.x 如何在GUI启动后立即运行函数?
一旦tkinter GUI可用,我就需要运行检查功能。我尝试了以下代码,但是出现的Messagebox没有响应,我无法按OK按钮Python 3.x 如何在GUI启动后立即运行函数?,python-3.x,tkinter,ttk,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
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()
您可以使用
after\u idle
在GUI启动后立即运行某些内容,也可以使用after
在短时间后运行它。在显示根窗口之前还是之后运行代码方面,两者的行为略有不同(这可能取决于平台;我不确定)
你在self.init\u gui()中有什么?如果您有另一个
Tk()
实例或无限循环,这可能会导致问题。不,网格中只有一堆小部件。应用程序在一开始没有mbox的情况下运行良好,但我需要向用户显示一个信息对话框,该对话框应该可以访问“self”变量。您的原始代码中是否有这种输入错误如果mycheck=True
应该是=
安装一个。不,我复制时是打字错误。但问题并不存在。主要问题是:一旦GUI显示出来,如何在没有用户任何操作的情况下运行函数?
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()