如何使tkinter messagebox显示在toplevel前面

3

我正在使用Python 3和tkinter编写一个程序,其中toplevels最初出现在根窗口的中心。如果toplevel未被移开,则会覆盖任何可能出现的消息框以显示错误消息。消息框出现在根窗口前面,但在toplevel后面。以下是从命令行显示发生情况的简单示例:

>>> from tkinter import *
>>> from tkinter import messagebox
>>> root = Tk()
>>> texto = Toplevel(root) # (Manually put toplevel in front of root)
>>> messagebox.showinfo(message='Does this work?')

有没有办法让消息框出现在顶层窗口前面?

在我的 Mac 上正常工作,你使用的是什么操作系统? - Tadhg McDonald-Jensen
你尝试过将消息框设置为顶层窗口的子窗口吗? - Bryan Oakley
我正在使用Linux Mint 17.3。我不确定如何将消息框设置为顶层窗口的子窗口。我尝试了这个方法,但它没有起作用:>>> mess = messagebox.showinfo(texto, message='Does this work?') 消息框仍然出现在顶层窗口下面。 - McClamrock
messagebox.showinfo("title", "message",master=texto) 是如何将其指定为 texto 的子级的方式。 - Tadhg McDonald-Jensen
稍作修改(messagebox.showinfo(message='这个有效吗'), master=texto),它是有效的!只需将您的评论转换为答案,我会接受它。 :o) - McClamrock
2个回答

10

适用于Ubuntu 22.04和Python 3.10,使用master=texto无法工作。 - Jack Griffin

0

只需定义消息框的父级

messagebox.showinfo(parent=textto, message="blah")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接