本文是对《Python Qt GUI快速编程》的第10章的例子剪贴板用Python3+PyQt5进行改写,分别对文本,图片和html文本的复制与粘帖,三种做法大同小异。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
#!/usr/bin/env python3 import os import sys from PyQt5.QtCore import (QMimeData, Qt) 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/gvim.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() app.exec_() |
运行结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/xiaoyangyang20/article/details/54706539