訪問裁剪板

介紹

QClipboard類提供了對系統剪貼板的訪問,可以在應用程序之間複製和粘貼數據。它的操作類似於QDrag類,並使用類似的數據類型。
QApplication類有一個靜態方法clipboard(),它返回對剪貼板對象的引用。任何類型的MineData都可以從剪貼板複製或粘貼。

方法

方法 描述
clear() 清除剪貼板的內容
setImage() 將QImage對象複製到剪貼板中
setMineData() 將MIME數據設置爲剪貼板
setPixmap() 從剪貼板中複製Pixmap對象
setText() 從剪貼板中複製文本
text() 從剪貼板中檢索文本

信號

信號 描述
dataChanged 檔剪貼板內容發生變化時,這個信號被髮射

代碼

import os
import sys
from PyQt5.QtCore import  QMimeData 
from PyQt5.QtWidgets import (QApplication, QDialog, QGridLayout, QLabel,QPushButton)
from PyQt5.QtGui import QPixmap

class Form(QDialog):
	def __init__(self, parent=None):
		super(Form, self).__init__(parent)
		textCopyButton = QPushButton("&Copy Text")
		textPasteButton = QPushButton("Paste &Text")
		htmlCopyButton = QPushButton("C&opy HTML")
		htmlPasteButton = QPushButton("Paste &HTML")
		imageCopyButton = QPushButton("Co&py Image")
		imagePasteButton = QPushButton("Paste &Image")
		self.textLabel = QLabel("Original text")
		self.imageLabel = QLabel()
		self.imageLabel.setPixmap(QPixmap(os.path.join(
		os.path.dirname(__file__), "images/clock.png")))
		layout = QGridLayout()
		layout.addWidget(textCopyButton, 0, 0)
		layout.addWidget(imageCopyButton, 0, 1)
		layout.addWidget(htmlCopyButton, 0, 2)
		layout.addWidget(textPasteButton, 1, 0)
		layout.addWidget(imagePasteButton, 1, 1)
		layout.addWidget(htmlPasteButton, 1, 2)
		layout.addWidget(self.textLabel, 2, 0, 1, 2)
		layout.addWidget(self.imageLabel, 2, 2)
		self.setLayout(layout)
		textCopyButton.clicked.connect(self.copyText)
		textPasteButton.clicked.connect(self.pasteText)
		htmlCopyButton.clicked.connect(self.copyHtml)
		htmlPasteButton.clicked.connect(self.pasteHtml)
		imageCopyButton.clicked.connect(self.copyImage)
		imagePasteButton.clicked.connect(self.pasteImage)
		self.setWindowTitle("Clipboard 例子")
		
	def copyText(self):
		clipboard = QApplication.clipboard()
		clipboard.setText("I've been clipped!")
	
	def pasteText(self):
		clipboard = QApplication.clipboard()
		self.textLabel.setText(clipboard.text())
	
	def copyImage(self):
		clipboard = QApplication.clipboard()
		clipboard.setPixmap(QPixmap(os.path.join(
		os.path.dirname(__file__), "./images/python.png")))
	
	def pasteImage(self):
		clipboard = QApplication.clipboard()
		self.imageLabel.setPixmap(clipboard.pixmap())
	
	def copyHtml(self):
		mimeData = QMimeData()
		mimeData.setHtml("<b>Bold and <font color=red>Red</font></b>")
		clipboard = QApplication.clipboard()
		clipboard.setMimeData(mimeData)
	
	def pasteHtml(self):
		clipboard = QApplication.clipboard()
		mimeData = clipboard.mimeData()
		if mimeData.hasHtml():
			self.textLabel.setText(mimeData.html())

if __name__ == "__main__":
	app = QApplication(sys.argv)
	form = Form()
	form.show()
	sys.exit(app.exec_())

展示

訪問裁剪版

後記

之後在詳細說明吧,現在先更上去再說。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章