What I want the button not to do is that the linked function is executed if the user holds the click and when he releases it the function does not execute, because I have an event
linked to the button bind
to move the window as it doesn't have the window manager and the app is mostly just buttons. Thank you very much for all the help you can give me.
from tkinter import *
def destroy1():
print('Hellow')
root = Tk()
frm = Frame(root, bg='gray')
frm .pack()
btn = Button(frm, text='Closed', command= destroy1)
btn.pack()
root.mainloop()
CodePudding user response:
I don't think that can be done easily, but if you really want to do it:
from tkinter import *
import time
FLAG = None
def on_press(x):
global FLAG
FLAG = time.time()
def on_release(x):
if FLAG is None: return
if time.time() - FLAG > 2: root.destroy()
FLAG = None
root = Tk()
frm = Frame(root, bg='gray')
frm.pack()
btn = Button(frm, text='Closed')
btn.pack()
btn.bind('<ButtonPress>', on_press)
btn.bind('<ButtonRelease>', on_release)
root.mainloop()
destroys only if the button is hold for > 2 seconds