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自动生成文章
Dec 25 Python
python实现根据用户输入从电影网站获取影片信息的方法
Apr 07 Python
使用Python的Tornado框架实现一个Web端图书展示页面
Jul 11 Python
python多线程socket编程之多客户端接入
Sep 12 Python
Python3随机漫步生成数据并绘制
Aug 27 Python
python+unittest+requests实现接口自动化的方法
Nov 29 Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 Python
Python Opencv提取图片中某种颜色组成的图形的方法
Sep 19 Python
使用Keras训练好的.h5模型来测试一个实例
Jul 06 Python
Python3.7安装pyaudio教程解析
Jul 24 Python
如何用 Python 制作 GitHub 消息助手
Feb 20 Python
python获取带有返回值的多线程
May 02 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简单实现欧拉函数Euler功能示例
2017/11/06 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
JavaScript 给汉字排序实例代码
2008/06/28 Javascript
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
查询json的数据结构的8种方式简介
2014/03/10 Javascript
Javascript基础教程之变量
2015/01/18 Javascript
js实现div拖动动画运行轨迹效果代码分享
2015/08/27 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
微信小程序 教程之数据绑定
2016/10/18 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
Bootstrap的基本应用要点浅析
2016/12/19 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
小程序实现投票进度条
2019/11/20 Javascript
Js代码中的span拼接问题解决
2019/11/22 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
浅谈机器学习需要的了解的十大算法
2017/12/15 Python
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
Python os.rename() 重命名目录和文件的示例
2018/10/25 Python
Pycharm运行加载文本出现错误的解决方法
2019/06/27 Python
Python爬虫运用正则表达式的方法和优缺点
2019/08/25 Python
利用Python如何实时检测自身内存占用
2020/05/09 Python
Python Dataframe常见索引方式详解
2020/05/27 Python
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
自主实习接收函
2014/01/13 职场文书
会计出纳员的自我评价
2014/01/15 职场文书
《登鹳雀楼》教学反思
2014/04/09 职场文书
广播体操口号
2014/06/18 职场文书
公务员年终个人总结
2015/02/12 职场文书
学校世界艾滋病日宣传活动总结
2015/05/05 职场文书
追悼词范文大全
2015/06/23 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
纯 CSS 自定义多行省略的问题(从原理到实现)
2021/11/11 HTML / CSS
Python Matplotlib绘制等高线图与渐变色扇形图
2022/04/14 Python