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 内置字符串处理函数的使用方法
Jun 11 Python
数据挖掘之Apriori算法详解和Python实现代码分享
Nov 07 Python
Python 读写文件和file对象的方法(推荐)
Sep 12 Python
python 中的int()函数怎么用
Oct 17 Python
让Django支持Sql Server作后端数据库的方法
May 29 Python
Python中pip更新和三方插件安装说明
Jul 08 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
Oct 28 Python
python 对类的成员函数开启线程的方法
Jan 22 Python
Python内存映射文件读写方式
Apr 24 Python
Python小白学习爬虫常用请求报头
Jun 03 Python
Django项目如何获得SSL证书与配置HTTPS
Apr 30 Python
Python中的socket网络模块介绍
Jul 23 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程序
2006/10/09 PHP
PHP文件缓存类示例分享
2015/01/30 PHP
php之static静态属性与静态方法实例分析
2015/07/30 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
Stop SQL Server
2007/06/21 Javascript
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
基于jQuery的试卷自动排版系统实现代码
2011/01/06 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
2013/04/19 Javascript
js判断变量初始化的三种形式及推荐用的形式
2014/07/22 Javascript
pace.js页面加载进度条插件
2015/09/29 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
Node.js重新刷新session过期时间的方法
2016/02/04 Javascript
js计算系统当前日期是星期几的方法
2016/07/14 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
JSONLINT:python的json数据验证库实例解析
2017/11/28 Python
python开头的coding设置方法
2019/08/08 Python
Python如何获取文件路径/目录
2020/09/22 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
全球最大的跑步用品商店:Road Runner Sports
2016/09/11 全球购物
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
英国DIY汽车维修配件网站:DIY Car Service Parts
2019/08/30 全球购物
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
生物技术研究生自荐信
2013/11/12 职场文书
咖啡书吧创业计划书
2014/01/13 职场文书
模范教师事迹材料
2014/02/10 职场文书
三字经教学反思
2014/04/26 职场文书
环保倡议书范文
2014/05/12 职场文书
班组建设经验交流材料
2014/05/12 职场文书
工作批评与自我批评范文
2014/10/16 职场文书
学习群众路线的心得体会
2014/11/05 职场文书
2014年财政工作总结
2014/12/10 职场文书
2016会计专业自荐信范文
2016/01/28 职场文书