在一个小项目中遇到主窗口和toplevel窗口都使用class类时,toplevel窗口弹出的messagebox会主动跳转到主窗口中,同时toplevel窗口会自动在主窗口后面。
查阅了网上资料,主要方法都是在messagebox增加parent参数,如下代码。
from tkinter.messagebox import *
root = Tk()
texto = Toplevel(root)
showinfo("title", "message",parent=texto)
但项目中使用的是class,toplevel没有明确的parent,在csdn中是有网友使用parent=self._root,但测试后并不对。
from tkinter import *
from tkinter.ttk import *
from tkinter.messagebox import *
import os
currentpath=os.path.dirname(__file__)
class AcurateQueryWindow(Toplevel):
showwarning('warning','input four parameters!')
后再stackoverflow上求助,给出的答案是parent=self。测试通过,弹出的messagebox位于toplevel窗口前。
showwarning('warning','input four parameters!',parent=self)