سلام
همونطور که میدونید توی پایتون و tkinter میشه یه رویداد رو به یه تابع متصل کرد. خب حالا من میخوام وقتی یکی از کلیدهای کیبورد (مثلا A) نگه داشته شد تابع اجرا بشه (تاکید میکنم وقتی کلید فشار و نگه داشته بشه، نه اینکه فقط زده بشه)
بطور مثال توی بازی gta وقتی کلید مربوط به بوق ماشین فشار و نگه داشته میشه صدای بوق اجرا میشه و بمحض رها کردن کلید صدا قطع میشه
توی کد زیر:
root.bind('<a>', play)
وقتی کاربر کلید A رو توی برنامه میزنه تابع پلی اجرا میشه، درصورتیکه من میخوام وقتی کاربر کلید A رو زد و نگه داشت play اجرا بشه و بمحض رها کردن کلید A اجرای play متوقف بشه، درست شبیه بوق ماشین (تابع پلی هم در واقع یه فایل موسیقی رو اجرا میکنه)
بعد اینکه اصلا توی پایتون و tkinter میشه ایونت های سفارشی و مخصوص ساخت؟ مثلا یه رویداد این باشه که کاربر 3 بار پشت سر هم کلید اینتر رو بزنه؟
ممنون میشم راهنمایی بفرمایید
سلام. برای این کار میتونید از پکیج pynput استفاده کنید. برای کنترل و مدیریت رویدادهای موس و کیبورد متدهای جالبی داره.
https://pypi.org/project/pynput/
به شکل زیر میتونید از pynput.keyboard.Listener استفاده کنید.
from pynput.keyboard import Key, Listener
def on_press(key):
print('{0} pressed'.format(
key))
def on_release(key):
print('{0} release'.format(
key))
if key == Key.esc:
# Stop listener
return False
# Collect events until released
with Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
گزینه سوم (Collect events until released) میتونه برای اجرای یه کد در حین نگه داشتن یه کلید استفاده بشه.
و در مورد سوال دومتون:
احتمالا با استفاده از def on_press بتونید ساختاری بوجود بیارید که مثلا: آخرین ۵ کلیدی رو که فشرده شدند در یه آرایه ذخیره کنه... و بعد از هر بار ذخیره یه تابع رو فراخوانی کنید که چک کنه:
"اگر ۳ گزینه آخر آرایه مثل هم هستند، اون کار خاصی رو که میخواهید براتون انجام بده."
موفق باشید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟