python3+PyQt5实现使用剪贴板做复制与粘帖示例


Posted in Python onJanuary 24, 2017

本文是对《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_()

运行结果:

python3+PyQt5实现使用剪贴板做复制与粘帖示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
windows下ipython的安装与使用详解
Oct 20 Python
Python 中 list 的各项操作技巧
Apr 13 Python
你眼中的Python大牛 应该都有这份书单
Oct 31 Python
pyqt远程批量执行Linux命令程序的方法
Feb 14 Python
Python提取特定时间段内数据的方法实例
Apr 01 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
Jun 13 Python
在自动化中用python实现键盘操作的方法详解
Jul 19 Python
详解Python并发编程之创建多线程的几种方法
Aug 23 Python
Django实现文件上传下载
Oct 06 Python
Python Map 函数的使用
Aug 28 Python
Pytorch 图像变换函数集合小结
Feb 01 Python
pytorch交叉熵损失函数的weight参数的使用
May 24 Python
Python调用C++程序的方法详解
Jan 24 #Python
python中import学习备忘笔记
Jan 24 #Python
用python实现简单EXCEL数据统计的实例
Jan 24 #Python
Python如何import文件夹下的文件(实现方法)
Jan 24 #Python
利用Python脚本实现ping百度和google的方法
Jan 24 #Python
解决python2.7用pip安装包时出现错误的问题
Jan 23 #Python
浅谈终端直接执行py文件,不需要python命令
Jan 23 #Python
You might like
PHP中对各种加密算法、Hash算法的速度测试对比代码
2014/07/08 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
jQuery 表单验证扩展代码(二)
2010/10/20 Javascript
javascript SpiderMonkey中的函数序列化如何进行
2012/12/05 Javascript
Knockoutjs快速入门(经典)
2012/12/24 Javascript
基于jquery自定义的漂亮单选按钮RadioButton
2013/11/19 Javascript
如何判断元素是否为HTMLElement元素
2013/12/06 Javascript
js实现的点击div区域外隐藏div区域
2014/06/30 Javascript
Egret引擎开发指南之创建项目
2014/09/03 Javascript
JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)
2015/01/13 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
2015/09/10 Javascript
原生JS实现拖拽图片效果
2020/08/27 Javascript
老生常谈javascript的类型转换
2016/10/12 Javascript
AngularJS自定义插件实现网站用户引导功能示例
2016/11/07 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
jQuery实现对象转为url参数的方法
2017/01/11 Javascript
jquery.cookie.js的介绍与使用方法
2017/02/09 Javascript
小程序绑定用户方案优化小结
2019/05/15 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
解决layui富文本编辑器图片上传无法回显的问题
2019/09/18 Javascript
Python中的字典遍历备忘
2015/01/17 Python
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
python如何在列表、字典中筛选数据
2018/03/19 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
Python实现随机创建电话号码的方法示例
2018/12/07 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
新西兰珠宝品牌:Michael Hill
2017/09/16 全球购物
婚庆司仪主持词
2014/03/15 职场文书
2014年人力资源工作总结
2014/11/19 职场文书
春风化雨观后感
2015/06/11 职场文书
谢师宴学生答谢词
2015/09/30 职场文书
2016年学校安全教育月活动总结
2016/04/06 职场文书
2019下半年英语教师的教学工作计划(3篇)
2019/09/25 职场文书
MySQL 隔离数据列和前缀索引的使用总结
2021/05/14 MySQL