آموزش کلاس کلیپ بورد در PyGTK
آموزش کلاس کلیپ بورد در PyGTK
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش کلاس کلیپ بورد در PyGTK خواهیم پرداخت.
پیشنهاد ویژه : پکیج آموزش پایتون
یک ابزار کلیپ بورد داده های مشترک بین دو فرآیند یا دو ویدجت از برنامه مشابه را نگه می دارد. GTK.clipboard یک رابط سطح بالا برای کلاس GTK.SELECTIONDATA است.
زیر یک نمونه اولیه از سازنده GTK.Clipboard است –
1 |
gtk.Clipboard(display,selction) |
در اینجا، پارامتر صفحه نمایش مربوط به جسم gtk.gdk.display است که کلیپ بورد باید ایجاد یا بازیابی شود. به طور پیش فرض، دستگاه خروجی استاندارد است. پارامتر انتخاب پیش فرض به کلیپ بورد، یک شیء نشان دهنده یک رشته داخلی است.
PYGTK یک تابع راحتی را برای ایجاد یک شیء کلیپ بورد با پیش فرض فراهم می کند.
1 |
gtk.clipboard.get() |
کلاس GTK.clipboard روش های زیر را دارد
- ()clipboard.store – این اطلاعات موجود در حال حاضر کلیپ بورد را در جایی ذخیره می کند، به طوری که حتی پس از اینکه برنامه ترک کرده است، باقی خواهد ماند.
- ()clipboard.Clear – این محتویات کلیپ بورد را حذف می کند.
- clipboard.set_text (متن) – این محتویات کلیپ بورد را به رشته تنظیم می کند.
- ()clipboard.request_text – این محتویات کلیپ بورد را به عنوان متن درخواست می کند. هنگامی که متن بعدا دریافت می شود، Callback با داده های مشخص شده توسط user_data نامیده می شود. امضای فراخوانی این است:
- Callback Def (کلیپ بورد، متن، داده ها) – متن شامل متن بازیابی شده از کلیپ بورد خواهد بود.
به عنوان یک کلیپ بورد، کد زیر از دو متن TextViews و دو دکمه در Toplevel GTK.Window استفاده می کند. دکمه “SET” تابع ()On_Set را فراخوانی می کند که متن را از متن اول متن در کلیپ بورد قرار می دهد.
1 2 3 4 5 |
buf = self.tv1.get_buffer() text = buf.get_text(buf.get_start_iter(), buf.get_end_iter()) self.clipboard = gtk.clipboard_get() self.clipboard.set_text(text) self.clipboard.store() |
هنگامی که دکمه دوم (“retrieved”) فشار داده می شود، داده ها از کلیپ بورد توسط روش ()request_text به دست می آید –
1 |
self.clipboard.request_text(self.readclipboard, user_data = None) |
محتوای user_data به روش ()Callback ReadClipboard که آن را در TextView دوم نمایش می دهد، می رود.
1 2 3 4 |
def readclipboard(self, clipboard, text, data): buffer = gtk.TextBuffer() buffer.set_text(text) self.tv2.set_buffer(buffer) |
مثال کلاس کلیپ بورد در PyGTK
زیر کل کد برای عملیات کلیپ بورد است –
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Clipboard demo") self.set_size_request(300,200) self.set_position(gtk.WIN_POS_CENTER) vbox = gtk.VBox(False, 5) self.tv1 = gtk.TextView() vbox.add(self.tv1) self.tv2 = gtk.TextView() vbox.add(self.tv2) hbox = gtk.HBox(True, 3) Set = gtk.Button("set") Set.set_size_request(70, 30) retrieve = gtk.Button("retrieve") hbox.add(Set) hbox.add(retrieve) halign = gtk.Alignment(1, 0, 0, 0) halign.add(hbox) vbox.pack_start(halign, False, False, 3) self.add(vbox) Set.connect("clicked", self.on_set) retrieve.connect("clicked", self.on_retrieve) self.connect("destroy", gtk.main_quit) self.show_all() def on_set(self, widget): buf = self.tv1.get_buffer() text = buf.get_text(buf.get_start_iter(), buf.get_end_iter()) self.clipboard = gtk.clipboard_get() self.clipboard.set_text(text) self.clipboard.store() def on_retrieve(self, widget): self.clipboard.request_text(self.readclipboard, user_data=None) def readclipboard(self, clipboard, text, data): buffer = gtk.TextBuffer() buffer.set_text(text) self.tv2.set_buffer(buffer) PyApp() gtk.main() |
کد بالا خروجی زیر را تولید می کند –
لیست جلسات قبل آموزش 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
دیدگاه شما