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之编写可执行的.py文件
Nov 28 Python
wxPython之解决闪烁的问题
Jan 15 Python
Python生成器定义与简单用法实例分析
Apr 30 Python
python学生管理系统学习笔记
Mar 19 Python
python二进制文件的转译详解
Jul 03 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
Aug 07 Python
python-序列解包(对可迭代元素的快速取值方法)
Aug 24 Python
详解python内置常用高阶函数(列出了5个常用的)
Feb 21 Python
浅析Python 多行匹配模式
Jul 24 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
Feb 25 Python
python 自动化偷懒的四个实用操作
Apr 11 Python
详解Python类和对象内容
Jun 22 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
简单采集了yahoo的一些数据
2007/02/14 PHP
php正则校验用户名介绍
2008/07/19 PHP
php判断正常访问和外部访问的示例
2014/02/10 PHP
PHP Session机制简介及用法
2014/08/19 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
2014/08/20 PHP
PHP session文件独占锁引起阻塞问题解决方法
2015/05/12 PHP
详解php的socket通信
2015/08/11 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
jquery在IE、FF浏览器的差别详细探讨
2013/04/28 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
jquery实用技巧之输入框提示语句
2016/07/28 Javascript
jQuery鼠标悬停内容动画切换效果
2017/04/27 jQuery
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
微信小程序基于高德地图查找位置并显示文字
2019/10/30 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
vue 实现用户登录方式的切换功能
2020/04/14 Javascript
Vue实现简单的拖拽效果
2020/08/25 Javascript
Python3 处理JSON的实例详解
2017/10/29 Python
python实现ID3决策树算法
2017/12/20 Python
Python之多线程爬虫抓取网页图片的示例代码
2018/01/10 Python
python读取文本中数据并转化为DataFrame的实例
2018/04/10 Python
Django中的Model操作表的实现
2018/07/24 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
Canvas制作旋转的太极的示例
2018/03/09 HTML / CSS
英语专业毕业生自荐信范文
2013/12/31 职场文书
银行存款证明样本
2014/01/17 职场文书
优秀本科生求职推荐信
2014/02/24 职场文书
海南召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2015年社区卫生工作总结
2015/04/21 职场文书
赢在中国观后感
2015/06/02 职场文书
Go 自定义package包设置与导入操作
2021/05/06 Golang
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android