如何在触发某个 if 语句时弹出 tkinter window?
How to make tkinter window pop-up when a certain if statement is triggered?
大家好,我正在尝试制作一个计时器应用程序,用于研究触发休息时间时弹出的窗口。我正在使用此代码来启动 window,但我面临的问题是如果我将 window 最小化,此代码将不再起作用并且应用程序不会弹出。我试图找到一种方法来从 window 中删除最小化按钮选项,但没有遇到任何问题。
def raise_above_all(window):
window.attributes('-topmost', 1)
window.attributes('-topmost', 0)
不要禁用 window 的最小化按钮。只需使用 window.state('zoomed')
和 window.attributes('-topmost', True)
。这样即使 window 被最小化,它仍然会被提升到最顶层。
另外,先定义 window 的 maxsize
,这样 window 就不会因为 zoomed
.
变成全屏
这是一个简单而完整的演示:
(要提高 window“window2”,您需要在“window1”的输入框中输入 1)
from tkinter import *
window1 = Tk()
window1.geometry('1200x600')
window1.minsize(1200, 600)
def raise_above_all(window):
window.state('zoomed') #Needed in case the window2 is minimized
window.attributes('-topmost', True)
def create_new_window2(window):
window.maxsize(300, 300) #define the maxsize so that the window2 does not get fullscreen when 'zoomed'
window.mainloop()
def submit():
if x.get()==1:
raise_above_all(window2)
else:
print("Enter 1")
x = IntVar()
Entry(window1, textvariable=x).pack()
Button(window1, text="Enter", command=submit).pack()
window2 = Tk()
create_new_window2(window2)
window1.mainloop()
或者,您可以使用 window.overrideredirect(True)
删除整个 window 的标题栏
您可以使用 window.deiconify()
使其取消最小化,并使用您的代码使其置于最前面。像这样:
window.deiconify()
window.attributes('-topmost', 1)
window.attributes('-topmost', 0)
大家好,我正在尝试制作一个计时器应用程序,用于研究触发休息时间时弹出的窗口。我正在使用此代码来启动 window,但我面临的问题是如果我将 window 最小化,此代码将不再起作用并且应用程序不会弹出。我试图找到一种方法来从 window 中删除最小化按钮选项,但没有遇到任何问题。
def raise_above_all(window):
window.attributes('-topmost', 1)
window.attributes('-topmost', 0)
不要禁用 window 的最小化按钮。只需使用 window.state('zoomed')
和 window.attributes('-topmost', True)
。这样即使 window 被最小化,它仍然会被提升到最顶层。
另外,先定义 window 的 maxsize
,这样 window 就不会因为 zoomed
.
这是一个简单而完整的演示: (要提高 window“window2”,您需要在“window1”的输入框中输入 1)
from tkinter import *
window1 = Tk()
window1.geometry('1200x600')
window1.minsize(1200, 600)
def raise_above_all(window):
window.state('zoomed') #Needed in case the window2 is minimized
window.attributes('-topmost', True)
def create_new_window2(window):
window.maxsize(300, 300) #define the maxsize so that the window2 does not get fullscreen when 'zoomed'
window.mainloop()
def submit():
if x.get()==1:
raise_above_all(window2)
else:
print("Enter 1")
x = IntVar()
Entry(window1, textvariable=x).pack()
Button(window1, text="Enter", command=submit).pack()
window2 = Tk()
create_new_window2(window2)
window1.mainloop()
或者,您可以使用 window.overrideredirect(True)
您可以使用 window.deiconify()
使其取消最小化,并使用您的代码使其置于最前面。像这样:
window.deiconify()
window.attributes('-topmost', 1)
window.attributes('-topmost', 0)