gpt4 book ai didi

python - Tkinter Toplevel 总是在前面

转载 作者:行者123 更新时间:2023-11-28 20:02:40 25 4
gpt4 key购买 nike

我正在开发一个程序,该程序使用 tkinter TopLevel 窗口向用户显示定期更新的日志信息。我的问题是主程序是全屏的,所以每当他们在打开日志窗口后与之交互时,日志窗口是不可见的,因为它现在位于主程序后面。

有没有办法强制 Toplevel 窗口(或者实际上,任何 Tkinter 窗口)永久保持在所有其他窗口之上?

例如考虑这个快速设置:

import tkinter as tk
from tkinter import ttk

class Example(tk.Frame):

def __init__(self, master, *args, **kwargs):
tk.Frame.__init__(self, master, *args, **kwargs)
self.pack()
btn = ttk.Button(self, text = "Press", command = self.openTopLevel)
btn.pack()

def openTopLevel(self):
topLevelWindow = tk.Toplevel(self)

root = tk.Tk()
main = Example(root)
root.mainloop()

当您按下按钮并打开顶层​​窗口时,它位于顶部。但是如果你捕获框架,四处移动等等,顶层就在它后面。我该如何阻止它?或者这不是 Tkinter 允许我做的事情吗?

最佳答案

要使一个窗口在 tkinter 应用程序中保持在其他窗口的前面,请使用
attributes('-topmost', 'true')。在您的代码中,它是一行要添加的。

import tkinter as tk
from tkinter import ttk

class Example(tk.Frame):

def __init__(self, master, *args, **kwargs):
tk.Frame.__init__(self, master, *args, **kwargs)
self.pack()
btn = ttk.Button(self, text = "Press", command = self.openTopLevel)
btn.pack()

def openTopLevel(self):
topLevelWindow = tk.Toplevel(self)
# Make topLevelWindow remain on top until destroyed, or attribute changes.
topLevelWindow.attributes('-topmost', 'true')

root = tk.Tk()
main = Example(root)
root.mainloop()

关于python - Tkinter Toplevel 总是在前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45214662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com