我想检测用户是否单击了“最大化”按钮:
当然是在 tkInter 中,但我不知道如何。
我尝试搜索 StackOverflow、The Web 和 tkInter 文档(主要是 effbot 的 tkinterbook),但没有找到与我想要获取的内容相关的任何内容。
最佳答案
有一个好方法可以使用.bind()
来做到这一点,让我们开始吧!
众所周知,我们可以使用命令 .state('zoomed')
最大化窗口。
root.state('zoomed')
我们可以通过 .bind("<Configure>", my_function)
获取任何窗口事件
因此,我们可以创建一个简单的函数来捕获最大化窗口事件,不一定是单击事件,但它可以工作。
这是一个例子:
import tkinter
def window_event(event):
if root.state() == 'zoomed':
print("My window is maximized")
if __name__ == '__main__':
root = tkinter.Tk()
root.title("Maximized")
root.bind("<Configure>", window_event)
root.mainloop()
编辑 1:新功能
import tkinter
def window_event(event):
if root.state() == 'zoomed':
print("My window is maximized")
#GET A NORMAL WINDOW EVENT
#You can easily do this by a conditional statement, but remember if you even move the window position,
#this conditional statement will be true, because move the window is a window event
if root.state() == 'normal':
print("My window is normal")
if __name__ == '__main__':
root = tkinter.Tk()
root.title("Window")
root.geometry("620x480")
root.bind("<Configure>", window_event)
root.mainloop()
编辑 2:新功能
import tkinter
count = 0
def window_event(event):
global count
if root.state() == 'zoomed':
print("My window is maximized")
count = 0
if root.state() == 'normal' and count < 1:
print("My window is normal")
count +=1
if __name__ == '__main__':
root = tkinter.Tk()
root.title("Window")
root.geometry("620x480")
root.bind("<Configure>", window_event)
root.mainloop()
看看这个链接,它们是使用 Python GUI 的另一种方式:
关于python - 检测用户是否点击了 'maximized'按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57533458/