PyQt5 - 剪貼簿 (QClipboard)



QClipboard 類提供對系統範圍剪貼簿的訪問,該剪貼簿提供了一種在應用程式之間複製和貼上資料的簡單機制。其操作類似於QDrag 類,並使用類似的資料型別。

QApplication 類有一個靜態方法clipboard(),它返回對剪貼簿物件的引用。任何型別的 MimeData 都可以複製到剪貼簿或從剪貼簿貼上。

以下是常用的一些剪貼簿類方法:

序號 方法及說明
1

clear()

清除剪貼簿內容

2

setImage()

將 QImage 複製到剪貼簿

3

setMimeData()

將 MIME 資料設定到剪貼簿

4

setPixmap()

將 Pixmap 物件複製到剪貼簿

5

setText()

將 QString 複製到剪貼簿

6

text()

從剪貼簿檢索文字

與剪貼簿物件關聯的訊號是:

序號 方法及說明
1

dataChanged()

每當剪貼簿資料更改時

示例

在下面的示例中,兩個TextEdit物件和兩個PushButton物件被新增到頂級視窗。

首先例項化剪貼簿物件。 textedit物件的Copy()方法將資料複製到系統剪貼簿。當單擊“貼上”按鈕時,它會獲取剪貼簿資料並將其貼上到另一個textedit物件中。

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class Example(QWidget):
   def __init__(self):
      super(Example, self).__init__()

      self.initUI()

   def initUI(self):
      hbox = QVBoxLayout()
      self.edit1=QTextEdit()
      hbox.addWidget(self.edit1)
      self.btn1=QPushButton("Copy")
      hbox.addWidget(self.btn1)
      self.edit2=QTextEdit()
      self.btn2=QPushButton("Paste")
      hbox.addWidget(self.edit2)
      hbox.addWidget(self.btn2)
      self.btn1.clicked.connect(self.copytext)
      self.btn2.clicked.connect(self.pastetext)
      self.setLayout(hbox)
      
      self.setGeometry(300, 300, 300, 200)
      self.setWindowTitle('Clipboard')
      self.show()
      
   def copytext(self):

      #clipboard.setText(self.edit1.copy())
      self.edit1.copy()
      print (clipboard.text())

      msg=QMessageBox()
      msg.setText(clipboard.text()+" copied on clipboard")
      msg.exec_()

   def pastetext(self):
      self.edit2.setText(clipboard.text())

app = QApplication(sys.argv)
clipboard=app.clipboard()
ex = Example()
ex.setWindowTitle("clipboard Example")
sys.exit(app.exec_())

以上程式碼產生以下輸出:

QClipboard
廣告
© . All rights reserved.