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下的XSLT API进行web开发的简单教程
Apr 15 Python
Python字符串格式化的方法(两种)
Sep 19 Python
Python Matplotlib库安装与基本作图示例
Jan 09 Python
python多线程http压力测试脚本
Jun 25 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
Oct 10 Python
基于python3监控服务器状态进行邮件报警
Oct 19 Python
将自己的数据集制作成TFRecord格式教程
Feb 17 Python
深入理解Python 多线程
Jun 16 Python
Python实现像awk一样分割字符串
Sep 15 Python
python matlab库简单用法讲解
Dec 31 Python
利用Python实现最小二乘法与梯度下降算法
Feb 21 Python
Python OpenCV 彩色与灰度图像的转换实现
Jun 05 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针对常规模板引擎中与CSS/JSON冲突的解决方法
2014/08/19 PHP
ecshop添加菜单及权限分配问题
2017/11/21 PHP
JAVASCRIPT  THIS详解 面向对象
2009/03/25 Javascript
JavaScript设计模式之装饰者模式介绍
2014/12/28 Javascript
jQuery中innerWidth()方法用法实例
2015/01/19 Javascript
jQuery实现预加载图片的方法
2015/03/17 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
AngularJS实现注册表单验证功能
2017/10/16 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
js中对象和面向对象与Json介绍
2019/01/21 Javascript
JavaScript中关于base64的一些事
2019/05/06 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
2019/05/27 Javascript
JS实现横向轮播图(初级版)
2020/06/24 Javascript
基于Python的关键字监控及告警
2017/07/06 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
Python拼接字符串的7种方法总结
2018/11/01 Python
Python中的asyncio代码详解
2019/06/10 Python
Django框架之DRF 基于mixins来封装的视图详解
2019/07/23 Python
Python实现新型冠状病毒传播模型及预测代码实例
2020/02/05 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
国外平面设计素材网站:The Hungry JPEG
2017/03/28 全球购物
Nanushka官网:匈牙利服装品牌
2019/08/14 全球购物
Andrew Marc官网:设计师外套的领先制造商
2019/10/30 全球购物
高校毕业生自我鉴定
2013/10/27 职场文书
《小儿垂钓》教学反思
2014/02/23 职场文书
就业协议书范本
2014/04/11 职场文书
农村党员一句话承诺
2014/05/30 职场文书
我爱祖国演讲稿
2014/09/02 职场文书
公安机关纪律作风整顿剖析
2014/10/10 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
vue完美实现el-table列宽自适应
2021/05/08 Vue.js
PyTorch梯度裁剪避免训练loss nan的操作
2021/05/24 Python
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python
Python如何解决secure_filename对中文不支持问题
2021/07/16 Python