آموزش کشیدن و رها کردن در PyGTK

3 سال پیش

آموزش کشیدن و رها کردن در PyGTK

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش کشیدن و رها کردن در PyGTK خواهیم پرداخت.

پیشنهاد ویژه : پکیج آموزش پایتون مختص بازار کار

ویجت هایی که دارای X Window هستند قادر به کشیدن و رها کردن هستند. در برنامه ، ابتدا باید یک ویجت به عنوان منبع و/یا مقصد کشیدن و رها کردن تعیین شود. ویجت به عنوان منبع تعریف شده می تواند داده های کشیده شده را ارسال کند. ویجت مقصد وقتی داده های کشیده شده روی آن رها می شود ، آن را می پذیرد.

مراحل زیر در تنظیم برنامه فعال کردن کشیدن و رها کردن دخیل است-

مرحله ۱ – تنظیم ویجت منبع.

مرحله ۲ – روش ()drag_source_set  انواع هدف عملیات درگ را مشخص می کند –

widget.drag_source_set(start_button_mask, targets, info)

 

مرحله ۳ – آرگومان start_button_mask یک ماسک بیتی از دکمه ها را مشخص می کند که عملیات کشیدن را شروع می کند.

مرحله ۴ – آرگومان هدف لیستی از چندتایی این ساختار است –

(target, flags, info)

 

آرگومان هدف یک رشته است که نوع کشیدن را نشان می دهد ، به عنوان مثال ، text/plain یا image/x-xpixmap.

مرحله ۶ – پرچم های زیر از قبل تعریف شده است –

  • gtk.TARGET_SAME_APP
  • gtk.TARGET_SAME_WIDGET

مرحله ۷ – هیچ محدودیتی وجود ندارد زیرا پرچم روی ۰ تنظیم شده است.

اگر ویجت لازم نیست به عنوان منبع عمل کند ، می تواند تنظیم نشده باشد –

widget.drag_source_unset()

 

سیگنال منبع سیگنال هایی را منتشر می کند. جدول زیر سیگنال ها و تماس های آنها را نشان می دهد.

drag_begin def drag_begin_cb(widget, drag_context, data):
drag_data_get def drag_data_get_cb(widget, drag_context, selection_data, info, time, data):
drag_data_delete def drag_data_delete_cb(widget, drag_context, data):
drag_end def drag_end_cb(widget, drag_context, data):

راه اندازی ویجت مقصد

روش ()drag_dest_set مشخص می کند که کدام ویجت می تواند داده های کشیده شده را دریافت کند.

widget.drag_dest_set(flags, targets, action)

 

پارامتر flags می تواند یکی از ثابت های زیر را بگیرد –

gtk.DEST_DEFAULT_MOTION این بررسی می کند که آیا کشیدن با لیست اهداف و اقدامات احتمالی این ویجت مطابقت دارد یا خیر ،()drag_status  را در صورت لزوم فراخوانی می کند.
gtk.DEST_DEFAULT_HIGHLIGHT تا زمانی که کشیدن روی این ویجت وجود داشته باشد ، این ویجت برجسته می شود
gtk.DEST_DEFAULT_DROP هنگامی که رها کردن رخ می دهد، اگر درگ با لیست اهداف و اقدامات احتمالی این ویجت مطابقت داشته باشد، ()drag_get_data  را از طرف ویجت فراخوانی کنید.
gtk.DEST_DEFAULT_ALL اگر تنظیم شده باشد ، مشخص می کند که همه اقدامات پیش فرض باید انجام شود.

هدف لیستی از چندتایی است که حاوی اطلاعات هدف است. آرگومان اقدامات یک ماسک بیتی یا ترکیبی از یک یا چند مقدار زیر است –

  • gtk.gdk.ACTION_DEFAULT
  • gtk.gdk.ACTION_COPY
  • gtk.gdk.ACTION_MOVE
  • gtk.gdk.ACTION_LINK
  • gtk.gdk.ACTION_PRIVATE
  • gtk.gdk.ACTION_ASK

کنترل کننده “drag-motion” باید با مطابقت اهداف مقصد با اهداف gtk.gdk.DragContext و اختیاری با بررسی داده های کشیدن با فراخوانی روش ()drag_get_data  تعیین کند که آیا داده های کشیدن مناسب هستند یا خیر. gtk.gdk.DragContext. متد ()drag_status باید فراخوانی شود تا وضعیت drag_context به روز شود.

کنترل کننده “drag-drop” باید هدف مطابقت را با استفاده از روش ()drag_dest_find_target تعیین کند و سپس داده های drag را با استفاده از روش ()drag_get_data  درخواست کند. داده ها در کنترل کننده “کشیدن داده دریافت شده” در دسترس خواهند بود.

 

منبع.

 

 

لیست جلسات قبل آموزش PyGTK

  1. آموزش PyGTK
  2. معرفی PyGTK
  3. آموزش محیط  PyGTK
  4. آموزش Hello World در  PyGTK
  5. آموزش کلاس های مهم در  PyGTK
  6. آموزش کلاس پنجره در PyGTK
  7. آموزش کلاس دکمه در PyGTK
  8. آموزش کلاس لیبل در PyGTK
  9. آموزش کلاس ورود در PyGTK
  10. آموزش مدیریت سیگنال در PyGTK
  11. آموزش مدیریت رویداد در PyGTK
  12. آموزش کانتینر در PyGTK
  13. آموزش کلاس جعبه در PyGTK
  14. آموزش کلاس ButtonBox در PyGTK
  15. آموزش کلاس تراز در PyGTK
  16. آموزش کلاس EventBox در PyGTK
  17. آموزش کلاس Layout در PyGTK
  18. آموزش کلاس ComboBox در PyGTK
  19. آموزش کلاس ToggleButton در PyGTK
  20. آموزش کلاس CheckButton در PyGTK
  21. آموزش کلاس RadioButton در PyGTK
  22. آموزش MenuBar ،Menu و MenuItem در PyGTK
  23. آموزش کلاس نوار ابزار در PyGTK
  24. آموزش کلاس Adjustment در PyGTK
  25. موزش کلاس Range در PyGTK
  26. آموزش کلاس Scale در PyGTK
  27. آموزش کلاس Scrollbar در PyGTK
  28. آموزش کلاس Dialog در PyGTK
  29. آموزش کلاس MessageDialog در PyGTK
  30. آموزش کلاس AboutDialog در PyGTK
  31. آموزش کلاس FontSelection در PyGTK
  32. آموزش کلاس Color Selection در PyGTK
  33. آموزش دیالوگ انتخاب فایل در PyGTK
  34. آموزش کلاس نوت بوک در PyGTK
  35. آموزش کلاس فریم در PyGTK
  36. آموزش کلاس AspectFrame در PyGTK
  37. آموزش کلاس TreeView در PyGTK
  38. آموزش کلاس Paned در PyGTK
  39. آموزش کلاس نوار وضعیت در PyGTK
  40. آموزش کلاس ProgressBar در PyGTK
  41. آموزش کلاس Viewport در PyGTK
  42. آموزش کلاس ScrolledWindow در PyGTK
  43. آموزش کلاس Arrow در PyGTK
  44.  آموزش کلاس Image در PyGTK
  45. آموزش کلاس DrawingArea در PyGTK
  46. آموزش کلاس SpinButton در PyGTK
  47. آموزش کلاس تقویم در PyGTK
  48. آموزش کلاس کلیپ بورد در PyGTK
  49. آموزش کلاس خط کش در PyGTK
  50. آموزش تایم اوت در PyGTK
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه