【问题标题】:tkinter messagebox always appears behind main pygame windowtkinter 消息框总是出现在 pygame 主窗口后面
【发布时间】:2017-02-02 04:33:19
【问题描述】:

我试图让我的消息框出现在我的pygame 窗口前面,但它一直出现在它后面。这是我的代码:

from tkinter import messagebox

# pygame loop here
messagebox.showinfo("Title", "Message here")

我是否需要添加一些代码行才能将其放在前面?任何帮助将不胜感激。

【问题讨论】:

  • 我尝试制作一个Tk() 对象并使用lift() 函数,但它仍然出现在窗口后面。
  • @m.o 请发布完整代码。
  • 您也可以尝试第二个答案 - 使用'-topmost',但您可能需要创建自己的带有消息的窗口。
  • 顺便说一句:tkinter 正常工作可能需要mainloop()

标签: python tkinter pygame


【解决方案1】:

我让它工作了。我还必须添加root.withdraw()

import tkinter as tk
from tkinter import messagebox

root = tk.Tk()
root.withdraw()

# pygame loop here
messagebox.showinfo("Title", "Message here")
root.lift()

不知道为什么隐藏根 tkinter 窗口可以让它工作......

【讨论】:

  • 老编程问题:“这条线是做什么的?” “不确定,但如果你删除它,它就不起作用”
【解决方案2】:
window = Tk()
window.eval('tk::PlaceWindow %s center' % window.winfo_toplevel())

这会将窗口放在屏幕中间的所有东西的顶层,所以它不会被隐藏在后面而留在前面

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    • 2015-09-25
    • 2020-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多