我想检测用户是否单击了“最大化”按钮:
当然是在tkInter中,但是我不知道如何。
我尝试搜索StackOverflow,Web和tkInter文档(主要是effbot的tkinterbook),但是没有找到与我要获取的内容相关的任何内容。
答案 0 :(得分:1)
有一种使用.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的另一种方式: