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 相关文章推荐
基于python的汉字转GBK码实现代码
Feb 19 Python
Python实现的几个常用排序算法实例
Jun 16 Python
Python读取Excel的方法实例分析
Jul 11 Python
利用Python抓取行政区划码的方法
Nov 28 Python
Python入门之三角函数tan()函数实例详解
Nov 08 Python
Python简单读取json文件功能示例
Nov 30 Python
详解python中的装饰器
Jul 10 Python
python处理multipart/form-data的请求方法
Dec 26 Python
python点击鼠标获取坐标(Graphics)
Aug 10 Python
使用python实现飞机大战游戏
Mar 23 Python
django的autoreload机制实现
Jun 03 Python
python给list排序的简单方法
Dec 10 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
php5中类的学习
2008/03/28 PHP
php实现的在线人员函数库
2008/04/09 PHP
php实现网站顶踩功能的完整前端代码
2015/07/19 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
2014/03/07 Javascript
一个支持任意尺寸的图片上下左右滑动效果
2014/08/24 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
JS模拟键盘打字效果的方法
2015/08/05 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
nodejs 中模拟实现 emmiter 自定义事件
2016/02/22 NodeJs
jquery自定义插件——window的实现【示例代码】
2016/05/06 Javascript
使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
2016/05/09 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
2016/08/09 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
JS实现在文本指定位置插入内容的简单示例
2017/12/22 Javascript
JS复杂判断的更优雅写法代码详解
2018/11/07 Javascript
JavaScript实现邮箱后缀提示功能的示例代码
2018/12/13 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
浅谈Vue3.0新版API之composition-api入坑指南
2020/04/30 Javascript
Vue环境搭建+VSCode+Win10的详细教程
2020/08/19 Javascript
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
Django框架设置cookies与获取cookies操作详解
2019/05/27 Python
Python 仅获取响应头, 不获取实体的实例
2019/08/21 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
2019/09/23 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
2020/01/02 Python
Python 模拟生成动态产生验证码图片的方法
2020/02/01 Python
python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
2020/03/09 Python
python 已知三条边求三角形的角度案例
2020/04/12 Python
事业单位接收函
2014/01/10 职场文书
人事主管岗位职责
2014/01/30 职场文书
react 项目中引入图片的几种方式
2021/06/02 Javascript
Redis分布式锁的7种实现
2022/04/01 Redis
Windows server 2012搭建FTP服务器
2022/04/29 Servers
js判断两个数组相等的5种方法
2022/05/06 Javascript