python3+PyQt5实现使用剪贴板做复制与粘帖示例
作者:basisworker 时间:2023-02-14 05:37:10
本文是对《Python Qt GUI快速编程》的第10章的例子剪贴板用Python3+PyQt5进行改写,分别对文本,图片和html文本的复制与粘帖,三种做法大同小异。
#!/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
标签:python,复制,剪贴板
0
投稿
猜你喜欢
详解python websocket获取实时数据的几种常见链接方式
2023-09-20 08:22:23
Access数据库用另一种方式管理密码
2008-10-13 12:25:00
python图像处理之反色实现方法
2021-06-28 20:35:43
详解基于webpack和vue.js搭建开发环境
2024-04-30 10:40:15
python3.5绘制随机漫步图
2022-08-12 14:16:13
13个超酷的js显示时间效果
2007-08-30 09:52:00
matlab读取串口数据并显示曲线的实现示例
2022-12-17 15:56:17
一个输入框提示列表效果
2008-03-09 18:53:00
Python matplotlib底层原理解析
2021-05-11 07:05:29
从trim原型函数看js正则表达式的性能
2008-12-11 13:55:00
常用的9个JavaScript图表库详解
2024-04-22 22:34:52
Go语言运行环境安装详细教程
2024-05-29 22:07:51
ODBC连接数据库以SQLserver为例图文详解
2024-01-13 04:07:43
Python与C/C++的相互调用案例
2021-12-23 02:21:29
php生成随机数/生成随机字符串的方法小结【5种方法】
2023-09-05 20:23:21
selenium+opencv实现滑块验证码的登陆
2022-03-28 06:49:04
通过Cursor工具使用GPT-4的方法详解
2023-08-28 05:08:34
python 下载文件的几种方式分享
2021-03-27 14:08:17
python调用新浪微博API项目实践
2021-08-17 21:56:53
解决MySQL数据库中与优化器有关的问题
2008-12-17 16:18:00