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 json模块使用实例
Apr 11 Python
python实现从字典中删除元素的方法
May 04 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
Jul 12 Python
python3学习笔记之多进程分布式小例子
Feb 13 Python
Python中时间datetime的处理与转换用法总结
Feb 18 Python
Python + OpenCV 实现LBP特征提取的示例代码
Jul 11 Python
python语言线程标准库threading.local解读总结
Nov 10 Python
python使用gdal对shp读取,新建和更新的实例
Mar 10 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
Apr 25 Python
python3让print输出不换行的方法
Aug 24 Python
python 调用js的四种方式
Apr 11 Python
python神经网络Xception模型
May 06 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
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
2013/06/08 PHP
PHP入门之常量简介和系统常量
2014/05/12 PHP
详解php中的implements 使用
2017/06/13 PHP
关于php开启错误提示的总结
2019/09/24 PHP
网页实时显示服务器时间和javscript自运行时钟
2014/06/09 Javascript
Egret引擎开发指南之发布项目
2014/09/03 Javascript
jQuery中has()方法用法实例
2015/01/06 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
微信小程序 下拉菜单简单实例
2017/04/13 Javascript
javascript 数组精简技巧小结
2020/02/26 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
在Python的Flask框架中使用日期和时间的教程
2015/04/21 Python
简单介绍Python中的struct模块
2015/04/28 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
keras的ImageDataGenerator和flow()的用法说明
2020/07/03 Python
一级方程式赛车官方网上商店:F1 Store(支持中文)
2018/01/12 全球购物
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
C/C++程序员常见面试题一
2012/12/08 面试题
外包公司软件测试工程师
2014/11/01 面试题
高级Java程序员面试要点
2013/08/02 面试题
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
网络工程与软件技术毕业生自荐信
2013/09/24 职场文书
庆七一活动方案
2014/01/25 职场文书
餐厅考勤管理制度
2014/01/28 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
在职党员进社区活动总结
2014/07/05 职场文书
学校献爱心活动总结
2014/07/08 职场文书
委托书的写法
2014/08/30 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书
大队委员竞选稿
2015/11/20 职场文书
篮球拉拉队口号
2015/12/25 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
看完这篇文章获得一些java if优化技巧
2021/07/15 Java/Android