python3+PyQt5实现使用剪贴板做复制与粘帖示例
发布时间 - 2026-01-10 22:46:51 点击率:次本文是对《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_()
运行结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# python
# 复制到剪贴板
# 剪贴板
# 操作剪贴板
# python两种获取剪贴板内容的方法
# 对python pandas读取剪贴板内容的方法详解
# python 3调用百度OCR API实现剪贴板文字识别
# python控制windows剪贴板
# 向剪贴板中写入图片的实例
# 使用wxPython获取系统剪贴板中的数据的教程
# python实现剪贴板的操作
# 三种
# 大同小异
# 大家多多
# textCopyButton
# parent
# super
# def
# QPushButton
# QLabel
# QGridLayout
# Form
# QPixmap
# QtGui
# amp
# htmlPasteButton
# HTML
# imageCopyButton
# imagePasteButton
# Image
# opy
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
Mybatis 中的insertOrUpdate操作
Python文件异常处理策略_健壮性说明【指导】
微信小程序 HTTPS报错整理常见问题及解决方案
Laravel怎么判断请求类型_Laravel Request isMethod用法
如何用景安虚拟主机手机版绑定域名建站?
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
高端网站建设与定制开发一站式解决方案 中企动力
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
Linux安全能力提升路径_长期防护思维说明【指导】
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
如何快速搭建高效香港服务器网站?
如何用已有域名快速搭建网站?
EditPlus中的正则表达式实战(5)
Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
详解Huffman编码算法之Java实现
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
Laravel如何使用Livewire构建动态组件?(入门代码)
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
利用python获取某年中每个月的第一天和最后一天
Laravel如何创建自定义Facades?(详细步骤)
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
高性能网站服务器部署指南:稳定运行与安全配置优化方案
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
如何用美橙互联一键搭建多站合一网站?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
Firefox Developer Edition开发者版本入口
laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法
如何在搬瓦工VPS快速搭建网站?
PHP正则匹配日期和时间(时间戳转换)的实例代码
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
Laravel如何升级到最新版本?(升级指南和步骤)
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
如何撰写建站申请书?关键要点有哪些?
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
如何在腾讯云免费申请建站?
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
Laravel如何为API生成Swagger或OpenAPI文档
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
js代码实现下拉菜单【推荐】
如何用搬瓦工VPS快速搭建个人网站?
Python并发异常传播_错误处理解析【教程】
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
手机软键盘弹出时影响布局的解决方法
网站建设要注意的标准 促进网站用户好感度!

