Kivy - 剪貼簿



Kivy框架中的剪貼簿物件可以訪問正在使用的作業系統的剪貼簿。藉助Kivy的剪貼簿物件,可以以程式設計方式執行剪下、複製和貼上操作。

剪貼簿是計算機RAM中的一個臨時緩衝區,大多數作業系統都提供它用於在應用程式內部和應用程式之間進行短期儲存和傳輸。在作業系統中,此剪貼簿是一個全域性物件。大多數作業系統都使用傳統的鍵盤快捷鍵來執行應用程式之間的資料剪下、複製和貼上操作。

通常,不需要透過剪貼簿顯式使用剪下-複製-貼上操作。但是,在某些情況下它可能很有用。

剪貼簿物件定義在“kivy.core.clipboard”模組中。剪貼簿物件可以使用以下方法:

  • copy() − 將引數data中提供的值複製到當前剪貼簿。如果資料不是字串型別,它將被轉換為字串。

  • get() − 獲取剪貼簿中的當前資料,如果可能,使用mimetype。不要直接使用此方法。請改用paste方法。

  • get_types() − 返回支援的mimetype列表。

  • paste() − 從系統剪貼簿獲取文字並將其返回為可用的字串。

  • put() − 將資料放入剪貼簿,並附加mimetype。你不應該直接使用此方法。請改用copy方法。

示例

在下面的示例中,我們在BoxLayout中安排了兩個多行文字框和兩個按鈕。COPY按鈕呼叫gettext()方法,該方法將選定的文字從上面的文字框複製到剪貼簿。

def gettext(self, instance):
   Clipboard.copy(data=self.text1.selection_text)

PASTE按鈕呼叫回撥insert(),該回調在游標位置貼上選定的文字。

def insert(self, instance):
   txt = Clipboard.paste()
   print (txt)
   self.text2.insert_text(txt)

這兩個函式繫結到兩個按鈕:

self.b1=Button(text='COPY')
self.b1.bind(on_press=self.gettext)
self.b2=Button(text='PASTE')
self.b2.bind(on_press=self.insert)

build()方法組裝文字框和按鈕。

以下是此練習的完整程式碼

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.core.clipboard import Clipboard
from kivy.core.window import Window

Window.size = (720, 400)

class mydemoapp(App):
   def gettext(self, instance):
      Clipboard.copy(data=self.text1.selection_text)
      
   def insert(self, instance):
      txt = Clipboard.paste()
      print(txt)
      self.text2.insert_text(txt)
      
   def build(self):
      main = BoxLayout(orientation='vertical')
      self.text1 = TextInput(multiline=True, font_size=32)
      btns = BoxLayout(orientation='horizontal')
      self.b1 = Button(text='COPY')
      self.b1.bind(on_press=self.gettext)
      self.b2 = Button(text='PASTE')
      self.b2.bind(on_press=self.insert)
      self.text2 = TextInput(
         multiline=True, font_size=32,
         foreground_color=[0, 0, 1, 1]
      )
      btns.add_widget(self.b1)
      btns.add_widget(self.b2)
      main.add_widget(self.text1)
      main.add_widget(btns)
      main.add_widget(self.text2)
      return main
      
mydemoapp().run()

輸出

執行程式時,您將看到兩個文字框。在上面的框中輸入Simple is better than Complex,在下面的框中輸入Complex is Complicated

然後,選擇子字串better than,然後單擊COPY按鈕將其儲存到剪貼簿。單擊下面框中“Complicated”一詞旁邊的位置,然後單擊PASTE按鈕。剪貼簿上的文字將被插入。

Kivy Clipboard
廣告
© . All rights reserved.