@roma79737

Как в Tkinter вывести текст в консоль при нажатии на правую кнопку мыши 3 секунды?

from tkinter import *

def m_l(event):
    print("L")

root = Tk()
root.geometry("500x400")
root.resizable(False, False)
root.bind('<Button-1>', m_l)

root.mainloop()

При нажатии на левую кнопку мыши в консоль выводится L.
Как сделать так, чтобы текст в консоль выводился только после зажатия клавиши 2 секунды?
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
@dzhebrak
Отслеживайте 2 события: нажатия кнопки (<ButtonPress-3>) и отпускания (<ButtonRelease-3>). При нажатии запомните текущее время, а в момент отпускания кнопки сравните текущее время с запомненным ранее.

Пример:
from tkinter import * 
import time

pressed_at = None

def m_l_press(event):
	global pressed_at
	pressed_at = time.time()
	print(pressed_at)

def m_l_release(event):
	global pressed_at

	print(time.time())
	if pressed_at and time.time() - pressed_at >= 2:
		print('CLICK')

	pressed_at = None 

root = Tk()
root.geometry("500x400")
root.resizable(False, False)

root.bind('<ButtonPress-3>',m_l_press)
root.bind('<ButtonRelease-3>',m_l_release)

root.mainloop()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы