آموزش کشیدن و رها کردن در PyGTK
آموزش کشیدن و رها کردن در PyGTK
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش کشیدن و رها کردن در PyGTK خواهیم پرداخت.
پیشنهاد ویژه : پکیج آموزش پایتون مختص بازار کار
ویجت هایی که دارای X Window هستند قادر به کشیدن و رها کردن هستند. در برنامه ، ابتدا باید یک ویجت به عنوان منبع و/یا مقصد کشیدن و رها کردن تعیین شود. ویجت به عنوان منبع تعریف شده می تواند داده های کشیده شده را ارسال کند. ویجت مقصد وقتی داده های کشیده شده روی آن رها می شود ، آن را می پذیرد.
مراحل زیر در تنظیم برنامه فعال کردن کشیدن و رها کردن دخیل است-
مرحله 1 – تنظیم ویجت منبع.
مرحله 2 – روش ()drag_source_set انواع هدف عملیات درگ را مشخص می کند –
1 |
widget.drag_source_set(start_button_mask, targets, info) |
مرحله 3 – آرگومان start_button_mask یک ماسک بیتی از دکمه ها را مشخص می کند که عملیات کشیدن را شروع می کند.
مرحله 4 – آرگومان هدف لیستی از چندتایی این ساختار است –
1 |
(target, flags, info) |
آرگومان هدف یک رشته است که نوع کشیدن را نشان می دهد ، به عنوان مثال ، text/plain یا image/x-xpixmap.
مرحله 6 – پرچم های زیر از قبل تعریف شده است –
- gtk.TARGET_SAME_APP
- gtk.TARGET_SAME_WIDGET
مرحله 7 – هیچ محدودیتی وجود ندارد زیرا پرچم روی 0 تنظیم شده است.
اگر ویجت لازم نیست به عنوان منبع عمل کند ، می تواند تنظیم نشده باشد –
1 |
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 مشخص می کند که کدام ویجت می تواند داده های کشیده شده را دریافت کند.
1 |
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
- آموزش PyGTK
- معرفی PyGTK
- آموزش محیط PyGTK
- آموزش Hello World در PyGTK
- آموزش کلاس های مهم در PyGTK
- آموزش کلاس پنجره در PyGTK
- آموزش کلاس دکمه در PyGTK
- آموزش کلاس لیبل در PyGTK
- آموزش کلاس ورود در PyGTK
- آموزش مدیریت سیگنال در PyGTK
- آموزش مدیریت رویداد در PyGTK
- آموزش کانتینر در PyGTK
- آموزش کلاس جعبه در PyGTK
- آموزش کلاس ButtonBox در PyGTK
- آموزش کلاس تراز در PyGTK
- آموزش کلاس EventBox در PyGTK
- آموزش کلاس Layout در PyGTK
- آموزش کلاس ComboBox در PyGTK
- آموزش کلاس ToggleButton در PyGTK
- آموزش کلاس CheckButton در PyGTK
- آموزش کلاس RadioButton در PyGTK
- آموزش MenuBar ،Menu و MenuItem در PyGTK
- آموزش کلاس نوار ابزار در PyGTK
- آموزش کلاس Adjustment در PyGTK
- موزش کلاس Range در PyGTK
- آموزش کلاس Scale در PyGTK
- آموزش کلاس Scrollbar در PyGTK
- آموزش کلاس Dialog در PyGTK
- آموزش کلاس MessageDialog در PyGTK
- آموزش کلاس AboutDialog در PyGTK
- آموزش کلاس FontSelection در PyGTK
- آموزش کلاس Color Selection در PyGTK
- آموزش دیالوگ انتخاب فایل در PyGTK
- آموزش کلاس نوت بوک در PyGTK
- آموزش کلاس فریم در PyGTK
- آموزش کلاس AspectFrame در PyGTK
- آموزش کلاس TreeView در PyGTK
- آموزش کلاس Paned در PyGTK
- آموزش کلاس نوار وضعیت در PyGTK
- آموزش کلاس ProgressBar در PyGTK
- آموزش کلاس Viewport در PyGTK
- آموزش کلاس ScrolledWindow در PyGTK
- آموزش کلاس Arrow در PyGTK
- آموزش کلاس Image در PyGTK
- آموزش کلاس DrawingArea در PyGTK
- آموزش کلاس SpinButton در PyGTK
- آموزش کلاس تقویم در PyGTK
- آموزش کلاس کلیپ بورد در PyGTK
- آموزش کلاس خط کش در PyGTK
- آموزش تایم اوت در PyGTK
دیدگاه شما