آموزش کلاس کلیپ بورد در PyGTK

3 سال پیش

آموزش کلاس کلیپ بورد در PyGTK

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

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

یک ابزار کلیپ بورد داده های مشترک بین دو فرآیند یا دو ویدجت از برنامه مشابه را نگه می دارد. GTK.clipboard یک رابط سطح بالا برای کلاس GTK.SELECTIONDATA است.

زیر یک نمونه اولیه از سازنده GTK.Clipboard است –

gtk.Clipboard(display,selction)

 

در اینجا، پارامتر صفحه نمایش مربوط به جسم gtk.gdk.display است که کلیپ بورد باید ایجاد یا بازیابی شود. به طور پیش فرض، دستگاه خروجی استاندارد است. پارامتر انتخاب پیش فرض به کلیپ بورد، یک شیء نشان دهنده یک رشته داخلی است.

PYGTK یک تابع راحتی را برای ایجاد یک شیء کلیپ بورد با پیش فرض فراهم می کند.

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 را فراخوانی می کند که متن را از متن اول متن در کلیپ بورد قرار می دهد.

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 به دست می آید –

self.clipboard.request_text(self.readclipboard,        user_data = None)

 

محتوای user_data به روش ()Callback ReadClipboard  که آن را در TextView دوم نمایش می دهد، می رود.

def readclipboard(self, clipboard, text, data):
   buffer = gtk.TextBuffer()
   buffer.set_text(text)
   self.tv2.set_buffer(buffer)

 

مثال کلاس کلیپ بورد در PyGTK

زیر کل کد برای عملیات کلیپ بورد است –

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()

 

کد بالا خروجی زیر را تولید می کند –

Clipboard Demo

 

منبع.

 

لیست جلسات قبل آموزش 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
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه