Имитация нажатия на Клавишу-Button (Tkinter)

Рейтинг: 0Ответов: 1Опубликовано: 23.03.2023

Суть моего вопроса можно легко понять из простейшего примера на Python (Tkinter):

from tkinter import *


def click(num):  # Обработчика Нажатия на Клавишу (ЛКМ)
    print(f' - Нажата ЛКМ!,  num: {num}')  # .....


def right_click(event):  # Обработчика Нажатия на Клавишу (ПКМ)
    print(' - Нажата ПКМ!')  # .....


# (Клавиша-Tkinter)
btn = Button()

# (.....)
btn.config(command=lambda arg=5: click(arg))  # привязка - Обработчика Нажатия на Клавишу (ЛКМ)
# btn.(.....) - Как программно имитировать нажатие на Клавишу-btn (ЛКМ)?

# (.....)
btn.bind('<Button-3>', right_click)  # привязка - Обработчика Нажатия на Клавишу (ПКМ)
# btn.(.....) - Как программно имитировать нажатие на Клавишу-btn (ПКМ)?

Помнится, что где-то я это уже встречал, но тогда было не нужно, а сейчас уже не помню ... Помогите, пожалуйста! Заранее Спасибо!

Как вызвать привязанную функцию - right_click(event), если я не знаю что такое - event?

Нигде не могу найти пример вызова функции с аргументом-event САМОСТОЯТЕЛЬНО, а не ЧЕРЕЗ СОБЫТИЯ! Как это делается? Неужели никто не знает?

Ответы

▲ 0Принят

задать необходимые атрибуты и передать его в качестве аргумента функции right_click. вот так

import tkinter as tk

root = tk.Tk()

def right_click(event):
    print(f'x={event.x}, y={event.y}')

# Создаем объект event и задаем необходимые атрибуты
event = tk.Event()
event.x = 50
event.y = 100

# Вызываем функцию right_click с объектом event в качестве аргумента
right_click(event)

root.mainloop()