python GUI庫圖形界面開發(fā)之PyQt5訪問系統(tǒng)剪切板QClipboard類詳細使用方法與實例
QClipboard類提供了對系統(tǒng)剪切板的訪問,可以在應用程序之間復制和粘貼數(shù)據(jù),它的操作類似于QDrag類,,并使用類似的數(shù)據(jù)結構
QApplication類有一個靜態(tài)方法clipboard(),它的返回值對剪切板對象的引用,任何類型的MimeData都可以從剪切板復制或粘貼
QClipboard類中的常用方法如表 方法 描述 clear() 清空剪切板的內容 setImage() 將QImage對象復制到剪切板中 setMimeData() 將MIME數(shù)據(jù)設置為剪切板 setPixmap() 從剪切板中復制Pixmap對象 setText() 從剪切板中復制文本 text() 從剪切板中檢索文本QClipboard類中的常用信號
信號 含義 dataChanged 當剪切板內容發(fā)生變化時,這個信號被發(fā)射 QClipboard訪問系統(tǒng)剪切版的使用實例import osimport sysfrom PyQt5.QtCore import QMimeDatafrom PyQt5.QtWidgets import (QApplication, QDialog, QGridLayout, QLabel, QPushButton)from PyQt5.QtGui import QPixmapclass Form(QDialog): def __init__(self, parent=None): super(Form, self).__init__(parent) #創(chuàng)建復制粘貼按鈕,并添加快捷鍵 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') #創(chuàng)建文本標簽和圖像標簽,顯示文本和圖像 self.textLabel = QLabel('Original text') self.imageLabel = QLabel() self.imageLabel.setPixmap(QPixmap(os.path.join( os.path.dirname(__file__), 'E:pyqt5快速開發(fā)與實戰(zhàn)第四章imagespython.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) #設置主窗口的布局,自定義槽函數(shù),設置標題 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): #實例化剪切板,z設置圖像標簽的圖片加載,從剪切板獲取路徑 clipboard = QApplication.clipboard() self.imageLabel.setPixmap(clipboard.pixmap()) def copyHtml(self): #實例化MimeData數(shù)據(jù)類型,設置類型Html的文本 mimeData = QMimeData() mimeData.setHtml('<b>Bold and <font color=red>Red</font></b>') #實例化剪切板,設置MimeData的初值文本 clipboard = QApplication.clipboard() clipboard.setMimeData(mimeData) def pasteHtml(self): #實例化剪切板,,獲取MimeData的數(shù)據(jù),并設置為標簽的文本值 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_())
效果圖如下
在這個例子中,有六個按鈕和2個標簽,需要實例化Clipboard對象,
可以將文本復制到Clipboard對象中
#實例化剪切板,標簽設置為剪切板的文本并顯示clipboard = QApplication.clipboard()self.textLabel.setText(clipboard.text())
也可以將圖片復制到剪切板對象中
clipboard = QApplication.clipboard()self.imageLabel.setPixmap(clipboard.pixmap())
本文主要講解了python PyQt5訪問系統(tǒng)剪切板QClipboard類詳細使用方法與實例,更多相關知識請查看下面的相關鏈接
相關文章:
